rm 命令用来删除文件和目录。rm 命令其实是一个很简单的命令,只要记录删除目录加上-r
选项即可。
但是,rm 命令还有一些小细节,本文来列举下。
-f 选项
如果删除了一个不存在的文件或目录,那么会报错
~ $ rm hello
rm: 无法删除'hello': 没有那个文件或目录
~ $ echo $?
1
在命令行执行这样的命令并没有什么影响,但是在 shell 脚本中就有影响了,因此它的退出状态是 1,而不是 0。
如果在 shell 脚本中,即使文件不存在,也要让退出状态返回 0,那么可以使用 -f
选项。
-i 选项
有时候在删除文件或目录时,我们想提示用户,让用户来选择是是否删除,我们可以使用 -i
选项。
-I 选项
-i
选项不好的地方在于,对第一个删除的文件或目录,都提示用户做选择。而如果只想让它提示一次呢?可以使用 -I
选项。
只删除目录项
如果我们只是想删除目录下的内容,而不包括目录本身,那么需要使用通配符
rm -r hello/*
shell 展开会把 hello/*
展开为目录下的内容,选项 -r
表示可以删除目录下的子目录。