"Remove" 的缩写,是一个用于删除文件或目录的命令行工具。
该命令可以永久删除指定的文件或目录,是文件系统管理中常用的命令,但需谨慎使用,因为删除的文件通常难以恢复。
rm [选项] <文件/目录1> <文件/目录2> ...常用选项
-f:"force",强制删除,不提示确认(即使文件只读),也不显示不存在文件的错误信息,例如rm -f temp.txt强制删除temp.txt且不提示。-i:"interactive",交互式删除,删除前逐一提示确认,例如rm -i *.log会询问是否删除每个.log文件,适合避免误删。-r或-R:"recursive",递归删除,用于删除目录及其包含的所有文件和子目录,例如rm -r old_dir删除old_dir及其内部所有内容。-v:"verbose",显示删除过程的详细信息,例如rm -v file1.txt会输出已删除 'file1.txt',便于确认删除操作。--preserve-root:"preserve root directory",保护根目录(默认行为),防止rm -r /等危险操作删除整个系统,例如rm -r /会被阻止并提示错误。
参考示例
示例1:删除单个文件 执行
rm report.txt,删除当前目录下的report.txt文件,系统会对只读文件提示确认,普通文件直接删除。示例2:强制删除多个文件 执行
rm -f *.tmp,强制删除当前目录下所有以.tmp结尾的临时文件,不提示确认,适合清理已知的无用文件。示例3:交互式删除目录 执行
rm -ri old_project,递归删除old_project目录时,逐一询问是否删除其中的文件和子目录,适合需要选择性保留部分内容的场景。示例4:静默删除目录及其内容 执行
rm -rf obsolete_data,强制、递归删除obsolete_data目录及其所有内容,且不输出任何提示,适合脚本中批量清理过期数据(需确保路径正确,避免误删)。示例5:删除指定类型的隐藏文件 执行
rm -v .*.bak,删除当前目录下所有以.开头且以.bak结尾的隐藏备份文件,并显示删除过程,便于核对是否误删重要文件。示例6:在脚本中安全删除临时文件 脚本中执行
if [ -f "/tmp/tempfile" ]; then rm -f "/tmp/tempfile"; fi,先判断临时文件是否存在,存在则强制删除,避免脚本执行时出现“文件不存在”的错误提示。示例7:删除空目录(配合rmdir思想) 虽然
rm主要用于删除文件,但rm -r empty_dir也可删除空目录(效果等同于rmdir),但更常用rmdir处理空目录,rm -r多用于删除非空目录。
警告:
rm -rf是危险操作,尤其是路径包含/或~时,例如rm -rf /tmp/*是安全的,但rm -rf / tmp/*(多一个空格)会删除根目录下的所有文件,导致系统崩溃,请务必仔细检查路径。