Linux/UNIX删除文件
如何使用命令行选项在Linux/UNIX/\ * BSD/AIX/HP-UX操作系统下删除文件?
要在Linux,FreeBSD,Solaris,macOS或类似Unix的操作系统中删除文件或目录,请使用rm命令或unlink命令。
本教程说明如何使用命令行选项在Linux或Unix之类的系统上删除给定文件。
语法:rm命令删除文件
rm(删除(remove)的缩写)是Unix/Linux命令,用于从文件系统中删除文件。
通常,在大多数文件系统上,删除文件需要对父目录具有写权限(并具有执行权限,以便首先进入目录)。
删除指定文件和目录的语法如下:
rm {file-name} rm [options] {file-name} unlink {file-name} rm -f -r {file-name}
其中:
-f
:强制删除文件-r
:递归删除目录的内容
当rm命令仅与文件名一起使用时,rm删除所有给定的文件,而无需用户确认。
警告:注意文件名,默认情况下是Unix和Linux,在删除文件之前不会提示您进行确认。
始终保留所有关键文件和数据的经过验证的备份。
Unix删除文件示例
假设您有一个名为abc.txt的文件,并且想要删除它:
$ rm abc.txt
Linux删除多个文件
删除三个名为foo.mp4,bar.doc和demo.txt的文件,运行:
rm foo.mp4 bar.doc demo.txt ls
Linux递归删除所有文件
从目录中删除所有文件和子目录(例如,从MS-DOS world中删除deltree like命令),执行:
$ rm -rf mydir
Linux删除文件并在每次删除前提示
要在尝试删除每个文件之前请求确认,请将-i
选项传递给rm命令:
$ rm -i filename
通过-I选项仅提示一次,然后再删除三个以上的文件,但仍然可以防止cli中的许多错误:
$ rm -I foo.conf bar.conf resume.doc cakeday.png $ rm -I -r -f ~/olddata/
强制执行rm命令以说明文件正在执行的操作
通过-v选项,如下所示:
$ rm -v moiz.list.txt bios-updates.doc removed 'moiz.list.txt' removed 'bios-updates.doc'
如何删除空目录
要删除空目录,请使用rmdir命令而不是rm命令:
$ rmdir mydirectory $ rmdir dirNameHere $ rmdir docs
如何读取要从文本文件中删除的所有文件的列表
rm命令通常与xargs结合使用以提供要删除的文件列表。
创建一个名为file.txt的文件:
$ cat file.txt
删除列表:
file1 /tmp/file2.txt ~/data.txt
现在删除file.txt中列出的所有文件,执行:
$ xargs rm < file.txt
如何删除名为-foo.txt的文件或名为-bar的目录?
删除名为-foo.txt的文件:
rm -- -foo.txt
或者
rm -- ./-foo.txt
删除名为-bar的目录:
rm -r -f -- -bar
这两个破折号告诉rm命令选项的结尾,其余部分仅是文件或目录名称以破折号开头。
切勿以管理员或普通UNIX/Linux用户身份运行rm -rf /
警告!如果执行这些示例,将删除计算机上的所有文件。
$ rm -rf / $ rm -rf *
rm -rf(或者rm -rf /,rm -rf*等)经常用于有关Unix灾难的笑话和轶事中。
如果该命令的rm -rf /变体由管理员运行,将导致删除计算机上每个可写挂载文件系统的内容。
不要尝试这些命令。
总结
这是GNU rm命令的所有重要选项
选项 | 描述 |
---|---|
-f | 忽略不存在的文件和参数,从不提示 |
-i | 在每次删除文件前提示 |
-I | 在删除三个以上文件之前或在递归删除时提示一次;比-i更具侵入性,同时仍然可以防止大多数错误--interactive [= WHEN]根据WHEN提示:从不,一次(-I)或始终(-i);如果没有WHEN,则总是提示 |
-一个文件系统 | |
--no-preserve-root | 请勿特殊对待'/' |
--preserve-root [= all] | 不删除'/'(默认);与" all"一起使用时,请在与其父设备 |
-r | 递归删除目录及其内容 |
-R | 与上述相同 |
-d | r移动空目录 |
-v | 说明正在做什么 |