rm 命令

| 选择喜欢的代码风格  

rm 命令补充说明:


rm 命令删除过程取消链接文件系统中的文件名与其关联数据,并将存储设备上的空间标记为将来写入时可用。 换句话说,当您删除文件时,文件中的数据不会更改,但它不再与文件名关联。数据本身没有被破坏,但在与 rm 取消链接后,它变得无法访问。 明智地删除你的文件!

rm 命令可以用 -i 选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入 y 并按 Enter 键,才能删除文件。如果仅按 Enter 键或其他字符,文件不会被删除。

如果您想要完全擦除磁盘上的数据,请改用 shred 命令。 shred 将覆盖文件的内容,以便以后无法重建。

rm 命令语法:


rm [-f | --force] {[-i | --interactive[=always]] | [-I | --interactive=once] |
   [--interactive=never]} [--one-file-system] [--no-preserve-root |
   --preserve-root] [-r | -R | --recursive] [-d | --dir] [-v | --verbose] 
   FILE...

rm 命令选项:


-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
--preserve-root:不对根目录进行递归操作;
-v:显示指令的详细执行过程。

rm 命令参数:


文件:指定被删除的文件列表,如果参数中含有目录,则必须加上-r或者-R选项。

rm 命令实例


#交互式删除当前目录下的文件test和example

rm -i test example
Remove test ?n(不删除文件test)
Remove example ?y(删除文件example)

#删除当前目录下除隐含文件外的所有文件和子目录
#应注意,这样做是非常危险的!

rm -r *
# rm 命令删除文件
# rm 文件1 文件2 ...

rm testfile.txt

#rm 命令删除目录
rm -r [目录名称] -r 表示递归地删除目录下的所有文件和目录。 -f 表示强制删除

rm -rf testdir
rm -r testdir

#删除操作前有确认提示 rm -i [文件/目录]

rm -r -i testdir

#选项 -I,可保证在删除超过 3 个文件时或递归删除时(LCTT 译注: 如删除目录)仅提示一次确认。
rm -I file1 file2 file3

# rm 显示当前删除操作的详情
rm -v [文件/目录]

rm 命令的坑:


当然,删除根目录(/)是 Linux 用户最不想要的操作,这也就是为什么默认 rm 命令不支持在根目录上执行递归删除操作。 然而,如果你非得完成这个操作,你需要使用 --no-preserve-root 选项。当提供此选项,rm 就不会特殊处理根目录(/)了。

rm 命令奇淫巧技 - 文件名以短划线开头:


要删除名称以短划线(“ - ”)开头的文件,可以在文件名之前单独指定双短划线(“ - ”)。 这个额外的破折号是必要的,这样rm不会误解文件名作为选项

例如,如果当前目录中有一个名为 “-file.txt” 的文件,则可以使用该命令将其删除。

rm -- -file.txt

或者,您可以通过使用路径名引用它来删除它。 例如,如果文件 “-file.txt” 位于 “ /home/hope” 目录中,则可以使用以下命令将其删除:

rm /home/hope/-file.txt

...或者,如果 /home/hope 目前是您的工作目录,像下面这样执行,也会奏效。

rm ./-file.txt

rm 命令扩展阅读:




发表评论