菜鸟科技网

liunx删除命令

核心警告 ⚠️

在 Linux 中,删除操作通常是永久性的,并且没有“回收站”! 一旦用 rm 删除,文件很难恢复。在执行任何删除命令前,请务必再三确认你的操作对象。

liunx删除命令-图1
(图片来源网络,侵删)

rm (Remove) - 删除文件或目录

rm 是最常用、也最危险的删除命令,它用于删除一个或多个文件。

基本用法

# 删除一个文件
rm filename.txt
# 删除多个文件
rm file1.txt file2.txt file3.log

删除目录(需要配合选项)

rm 默认不能删除非空目录,需要加上 -r-R 选项(递归删除)。

# 递归删除一个目录及其所有内容(文件和子目录)
rm -r my_directory

常用选项组合

为了安全起见,通常会使用 rm 的其他选项。

选项 全称 作用 示例
-i --interactive=once 交互式删除,在删除每个文件前都会询问用户,输入 y 确认,n 取消。 rm -i file.txt (删除前会问:rm: remove regular empty file 'file.txt'? y/n)
-f --force 强制删除,忽略不存在的文件,从不提示,当与 -i 一起使用时,-f 的优先级更高。 rm -f file.txt (如果文件不存在,也不会报错)
-r / -R --recursive 递归删除,删除目录及其下的所有内容。 rm -r my_folder
-v --verbose 详细模式,显示正在删除的文件。 rm -v file.txt (会显示:removed 'file.txt')

最常用、最安全的组合

rm -rf 是一个非常强大的组合,但也极其危险。

liunx删除命令-图2
(图片来源网络,侵删)
  • rm -r:递归删除目录。
  • rm -f:强制删除,不提示。
# 强制递归删除一个目录,且不进行任何提示
# 使用前请 100% 确认目录名正确!
rm -rf my_important_directory

安全建议:

  • 新手强烈建议使用 rm -ri,这样即使要删除目录,每个文件都会提示你,避免误删。
  • 在执行 rm -rf 之前,可以先用 ls -dtree 命令确认一下目录内容,确保无误。
    # 先看看要删的目录里有什么
    ls -d my_important_directory/*
    # 或者
    tree my_important_directory

rmdir (Remove Directory) - 删除空目录

rmdir 是一个更安全的命令,但它只能删除空目录

基本用法

# 删除一个空目录
rmdir empty_folder

特点

  • 如果目录不为空(里面有文件或子目录),rmdir 会报错并拒绝执行。
  • 优点:因为它不能删除非空目录,所以非常安全,不会误删重要数据。
  • 缺点:功能有限,如果目录非空,就无法使用。

删除多级空目录

rmdir 有一个 -p 选项,可以一次性删除多级空目录。

# 假设目录结构为 a/b/c,且 a, b, c 都是空的
rmdir -p a/b/c
# 这条命令会同时删除 c, b, a 目录

trash-cli - 回收站方案

如前所述,Linux 默认没有回收站。trash-cli 是一个流行的工具,它为命令行提供了一个类似回收站的功能,删除的文件会先被移动到 ~/.local/share/Trash 目录下,而不是直接从硬盘抹除。

liunx删除命令-图3
(图片来源网络,侵删)

安装

在基于 Debian/Ubuntu 的系统上:

sudo apt update
sudo apt install trash-cli

在基于 RedHat/CentOS 的系统上:

sudo yum install trash-cli

基本用法

安装后,你不再直接使用 rm,而是使用 trash 命令。

# 将文件或目录“删除”(移动到回收站)
trash filename.txt
trash my_folder/
# 查看回收站里的文件
trash-list
# 恢复回收站里的文件
trash-restore # 会进入一个交互式界面,选择要恢复的文件
# 清空回收站(永久删除回收站里的所有文件)
trash-empty

别名设置(强烈推荐)

为了方便使用,你可以为 rm 创建一个别名,让它自动调用 trash 命令。

  1. 打开你的 shell 配置文件(~/.bashrc, ~/.zshrc)。
  2. 在文件末尾添加以下行:
    alias rm='trash'
  3. 保存文件后,让配置生效:
    source ~/.bashrc
    # 或者
    # source ~/.zshrc

设置后,你以后输入的 rm 命令实际上都会变成 trash 命令,大大提高了安全性,如果你确实需要永久删除,可以使用 \rm 命令来调用原始的 rm


总结与对比

命令 全称 主要用途 危险性 备注
rm Remove 删除文件或目录 极高 最常用,但默认无回收站,务必小心使用 -rf 选项。
rmdir Remove Directory 仅删除空目录 安全,但功能有限,无法处理非空目录。
trash-cli - 模拟回收站功能 推荐新手和注重数据安全的用户安装使用。

最佳实践

  1. 对于新手:安装并配置 trash-cli,并设置 rm 的别名为 trash,这是最安全的学习方式。
  2. 对于日常使用:养成使用 rm -i 的习惯,删除前多一步确认。
  3. 对于系统管理或脚本:在脚本中谨慎使用 rm -rf,并确保路径变量经过严格校验,避免因变量错误导致灾难性后果(rm -rf / 是最危险的命令之一)。
  4. 养成备份习惯:对于任何重要的数据,定期的备份是防止数据丢失的最终保障。
分享:
扫描分享到社交APP
上一篇
下一篇