> echo "123" > -rumenz.txt
> cat ./-rumenz.txt
123
> rm -rf -rumenz.txt
rm: invalid option -- 'u'
Try 'rm ./-rumenz.txt' to remove the file ‘-rumenz.txt’.
Try 'rm --help' for more information.
由于-rumenz.txt里面包含特殊字符,所以常规的删除会报错。
> rm -rf ./-rumenz.txt
可以添加路径./就可以成功删除
> rm -rf -- -rumenz.txt
成功删除
对于特殊字符,如<>!*等组成的文件如何删除呢?,创建<>!*.txt文件
> echo "123" > "<>!*".txt
对于这种类型的文件,我们需要用引号将文件名包含起来
> rm -rf "<>!*".txt
注意:文件名为!*的文件就不能通过这样的方式删除,因为!*是有其他含义的,可以使用转义删除
既然!*无法通过加引号的方式删除,那还有什么办法吗?有!删除时,增加转义字符:
> echo "123" > !*.txt
> cat !*.txt
123
删除需要加转义
> rm -rf !*.txt
很多时候,文件名压根没法输入,因为它们都是一堆乱码。我们可以使用inode删除
在操作系统中,它是如何识别一个文件的呢?它并不是通过文件名,而是通过一个iNode号,即i节点号来识别不同的文件,文件名不过是这个文件其中的一个属性而已。
> ls -i
12345 䄀䈀䌀䐀䔀䘀䜀⸀䠀㔀䤀䨀.txt
上面的文件名根本无法正常输入,这时候就可以使用inode删除。12345就是该文件的inode号。
> find ./ -inum 12345 -exec rm {};
> rm *.txt
直接匹配txt删除,容易误删,删除前考虑清楚。
原文链接:https://rumenz.com/rumenbiji/linux-rm-special-files.html
页面更新:2024-05-15
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号