rm
命令的-i
参数(临时确认)执行rm
命令时添加-i
参数,系统会在删除每个文件前弹出确认提示(如“remove regular file ‘filename’? [y/n]”),需手动输入y
才会继续删除。这种方法简单直接,但需每次手动添加参数,适合偶尔需要确认的场景。
示例:rm -i filename
rm
命令别名(永久确认)通过修改shell配置文件(如~/.bashrc
、~/.zshrc
),为rm
命令设置别名,默认添加-i
参数。设置后,所有rm
命令都会自动触发确认提示,无需每次手动输入。
操作步骤:
vim ~/.bashrc
(bash用户)或vim ~/.zshrc
(zsh用户);alias rm='rm -i'
;source ~/.bashrc
(或source ~/.zshrc
)。rm filename
等同于rm -i filename
,强制要求确认trash-cli
工具(安全移动至回收站)trash-cli
是一个命令行工具,可将文件移动到系统回收站(而非直接删除),支持查看、还原回收站文件,更符合“误删可恢复”的需求。
操作步骤:
sudo apt-get install trash-cli
;CentOS/RHEL:sudo yum install trash-cli
;Fedora:sudo dnf install trash-cli
);trash filename
替代rm filename
,文件会被移动到回收站(路径通常为~/.local/share/Trash/files/
);restore filename
(需指定回收站内的文件名)或图形界面恢复;trash-empty [天数]
删除回收站中超过指定天数的文件(如trash-empty 30
清理30天前的文件)。若使用图形界面(如GNOME的Nautilus、KDE的Dolphin),可通过调整文件管理器设置,让“删除”操作直接永久删除文件(跳过回收站),避免误删进入回收站。需注意:此方法会彻底关闭回收站功能,适合确定不需要回收站的用户。
lsof
命令监控已删除但占用的文件若文件被误删但仍被某个进程占用(如编辑中的文档),lsof
(List Open Files)可列出这些文件,帮助及时恢复。
操作步骤:
lsof
:sudo apt-get install lsof
(Debian/Ubuntu)或sudo yum install lsof
(CentOS/RHEL);lsof | grep deleted
;通过编写脚本,将文件移动到指定回收站目录(而非系统回收站),并设置别名替代rm
命令。此方法灵活可控,可根据需求定制回收站路径、命名规则等。
示例脚本(/bin/rm.sh
):
#!/bin/sh
# 自定义回收站路径
dirpath=/data/Recycle
# 获取当前时间戳作为文件名前缀
now=$(date +'%Y%m%d_%H_%M_%S_')
# 移动文件到回收站
if [ ! -d "${dirpath}" ]; then
mkdir -p "${dirpath}"
fi
mv "$1" "${dirpath}/${now}${1}"
echo "文件已移动至回收站:${dirpath}/${now}${1}"
设置步骤:
/bin/rm.sh
,并赋予执行权限:chmod +x /bin/rm.sh
;~/.bashrc
),添加别名:alias rm='/bin/rm.sh'
;source ~/.bashrc
。rm filename
会将文件移动到/data/Recycle/
目录下(文件名格式为“时间戳_原文件名”),避免直接删除通过合理配置文件/目录权限,阻止未授权用户或误操作删除重要文件。常用权限设置:
755
权限(所有者可读、写、执行,其他用户仅可读、执行),防止误删:chmod 755 /path/to/important_file
;chown root:root /path/to/important_file
。以上方法可根据使用场景组合使用(如命令行用户推荐trash-cli
+别名,图形界面用户推荐修改文件管理器设置),有效降低文件误删风险。需注意:无论采用哪种方法,定期备份重要数据仍是防止数据丢失的最可靠方式。