rm命令的-i参数(临时确认)在删除文件时,添加-i参数会让系统对每个文件进行删除确认提示,避免无意识误删。
命令示例:rm -i filename
效果:执行后会弹出“是否删除”的确认对话框,需手动输入y(确认)或n(取消)才能继续。
rm命令别名(永久确认)通过修改shell配置文件(如.bashrc或.zshrc),将rm命令别名为rm -i,实现每次删除都需确认的效果。
操作步骤:
vim ~/.bashrc(或~/.zshrc);alias rm='rm -i';source ~/.bashrc(或~/.zshrc)。rm命令都会自动带上-i参数。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-trash命令(部分系统需手动指定回收站路径)恢复文件。若使用图形界面(如GNOME的Nautilus、KDE的Dolphin),可通过调整文件管理器设置,让“删除”操作直接永久删除(跳过回收站),或确认是否进入回收站。
Nautilus(GNOME)设置:
通过编写脚本,将文件移动到指定回收站目录(而非系统默认),并设置别名替代rm命令。
操作步骤:
mkdir -p ~/.Trash;~/.remove.sh):#!/bin/bash
TRASH_DIR="$HOME/.Trash"
for item in "$@"; do
TIMESTAMP=$(date +%s)
FILENAME=$(basename "$item")
mv "$item" "$TRASH_DIR/$FILENAME.$TIMESTAMP"
done
chmod +x ~/.remove.sh;~/.bashrc,添加alias rm='~/.remove.sh',然后source ~/.bashrc。~/.Trash目录,避免直接删除。lsof命令监控已删除但仍被占用的文件若文件被删除但仍被某个进程占用(如编辑中的文档),lsof可列出这些文件,帮助及时恢复。
命令示例:lsof | grep deleted
效果:输出中会显示已删除但仍被进程占用的文件(如/path/to/deleted_file),通过重启对应进程或复制文件可恢复数据。
无论采取何种预防措施,定期备份都是防止数据丢失的最有效手段。可使用rsync工具将重要文件同步到外部设备或云存储。
命令示例:rsync -av --delete /path/to/source /path/to/backup
效果:将source目录的内容同步到backup目录,--delete参数会删除backup中不存在于source的文件(保持同步)。