删除文件名含有特殊字符的文件
当你要删除含有特殊字符的文件名时,有以下几种情况:
- 使用转义字符、引号
rm -rf \~
rm -rf '~'
rm -rf "~"
上述命令删除文件名为 ~ 的文件。如果直接删除,那么根目录中的所有文件都会丢失。这种方式能够适用于大多数情况,如果你不确定的话建议使用 -i ,以免造成严重的后果。
注意上述命令成功达成任务的关键在于阻止 shell 进行路径名扩展。
-
使用 --
当文件名中的第一个符号为 ‘-’,使用转义字符便不能完成任务。这时可以使用 ‘–’,阻止对后续参数进行解析。
-
使用 ./
使用 ./ 也能够完成与 – 相同的功能。不仅如此,它还可以用于部分替代转义字符的使用。
rm -rf ./~
是否使用 -f 参数视个人而定。
rm 并没有彻底删除文件,它仅仅解除了文件的链接,也就是说它仅仅将文件的入口从文件系统中移除了。只有当文件的数据块被覆盖,文件的内容才真正丢失。在此之前可以通过专业的数据恢复软件恢复文件内容。
如果你真的想要彻底的删除文件,你可以通过 shred 这个命令来完成。这个命令将会覆盖文件的内容,做到了真正意义上的文件删除操作。