用于删除给定的文件和目录
rm
命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。
注意:使用rm
命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。rm
命令可以用-i
选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入y
并按Enter键,才能删除文件。如果仅按Enter键或其他字符,文件不会被删除。
rm (选项)(参数)
-d
:直接把欲删除的目录的硬连接数据删除成0,删除该目录;-f
:强制删除文件或目录;-i
:删除已有文件或目录之前先询问用户;-r
或-R
:递归处理,将指定目录下的所有文件与子目录一并处理;--preserve-root
:不对根目录进行递归操作;-v
:显示指令的详细执行过程。文件:指定被删除的文件列表,如果参数中含有目录,则必须加上-r
或者-R
选项。
交互式删除当前目录下的文件test
和example
rm -i test example
删除当前目录下除隐含文件外的所有文件和子目录
rm -r *
应注意,这样做是非常危险的!
删除当前目录下的package-lock.json
文件
find . -name "package-lock.json" -exec rm -rf {} \;
查找 .html 结尾的文件并删除
find ./docs -name "*.html" -exec rm -rf {} \;
删除当前项目下 .html 结尾的文件
rm -rf *.html
删除当前目录下的node_modules
目录
find . -name 'node_modules' -type d -prune -exec rm -rf '{}' +
删除文件
rm testfile.txt
删除目录
rm -r [目录名称]
删除操作前有确认提示
rm -i [文件/目录]
rm
忽略不存在的文件或目录
-f
选项(即“force”)让此次操作强制执行,忽略错误提示
rm -f [文件...]
仅在某些场景下确认删除
选项-I
,可保证在删除超过3个文件时或递归删除时仅提示一次确认。
rm -I file1 file2 file3
删除根目录
当然,删除根目录(/)是 Linux 用户最不想要的操作,这也就是为什么默认rm
命令不支持在根目录上执行递归删除操作。然而,如果你非得完成这个操作,你需要使用--no-preserve-root
选项。当提供此选项,rm
就不会特殊处理根目录(/)了。
不给实例了,操作系统都被你删除了,你太坏了😆
rm
显示当前删除操作的详情
rm -v [文件/目录]
用来删除空目录
rmdir
命令用来删除空目录。当目录不再被使用时,或者磁盘空间已到达使用限定值,就需要删除失去使用价值的目录。利用rmdir
命令可以从一个目录中删除一个或多个空的子目录。该命令从一个目录中删除一个或多个子目录,其中dirname
表示目录名。如果dirname
中没有指定路径,则删除当前目录下由dirname
指定的目录;如dirname
中包含路径,则删除指定位置的目录。删除目录时,必须具有对其父目录的写权限。
注意:子目录被删除之前应该是空目录。就是说,该目录中的所有文件必须用rm
命令全部删除。另外,当前工作目录必须在被删除目录之上,不能是被删除目录本身,也不能是被删除目录的子目录。
虽然还可以用带有-r
选项的rm
命令递归删除一个目录中的所有文件和该目录本身,但是这样做存在很大的危险性。
rmdir (选项)(参数)
-p
或--parents
:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;--ignore-fail-on-non-empty
:此选项使rmdir
命令忽略由于删除非空目录时导致的错误信息;-v
或--verboes
:显示命令的详细执行过程;--help
:显示命令的帮助信息;--version
:显示命令的版本信息。目录列表:要删除的空目录列表。当删除多个空目录时,目录名之间使用空格隔开。
将工作目录下,名为www
的子目录删除:
rmdir www
在工作目录下的www
目录中,删除名为Test
的子目录。若Test
删除后,www
目录成为空目录,则www
亦予删除。
rmdir -p www/Test
下面命令等价于rmdir a/b/c
, rmdir a/b
, rmdir a
rmdir -p a/b/c