在CentOS系统中,自定义回收站策略可以通过修改文件系统的挂载选项来实现。以下是一些常见的方法:
xattr
和trash-cli
安装trash-cli
:
sudo yum install trash-cli
配置trash-cli
:
trash-cli
默认会将文件移动到用户的~/.local/share/Trash/files
目录下。你可以通过修改~/.local/share/Trash/info/default/ignore
文件来自定义忽略的文件类型。
echo "*.tmp" >> ~/.local/share/Trash/info/default/ignore
设置回收站大小限制:
trash-cli
本身没有直接设置回收站大小限制的功能,但你可以通过监控和手动清理来实现。
编辑/etc/fstab
:
打开/etc/fstab
文件,找到你要修改的文件系统条目,添加或修改user_xattr
和acl
选项。
sudo vi /etc/fstab
例如,如果你要修改/dev/sda1
分区:
UUID=your-uuid / ext4 defaults,user_xattr,acl 1 1
重新挂载文件系统: 修改完成后,重新挂载文件系统以应用更改。
sudo mount -o remount /
使用setfattr
和getfattr
管理扩展属性:
你可以使用setfattr
和getfattr
命令来管理文件的扩展属性,从而实现更细粒度的控制。
# 设置文件的扩展属性
setfattr -n user.trash /path/to/file
# 获取文件的扩展属性
getfattr -n user.trash /path/to/file
inotify
监控文件删除操作安装inotify-tools
:
sudo yum install inotify-tools
编写脚本监控文件删除操作:
创建一个脚本文件,例如monitor_trash.sh
,内容如下:
#!/bin/bash
MONITOR_DIR="/path/to/monitor"
TRASH_DIR="$HOME/.local/share/Trash/files"
inotifywait -m -r -e delete --format '%w%f' "$MONITOR_DIR" | while read FILE
do
mv "$FILE" "$TRASH_DIR"
done
运行脚本: 赋予脚本执行权限并运行:
chmod +x monitor_trash.sh
./monitor_trash.sh
inotify
监控文件删除操作时,确保脚本在后台持续运行。通过以上方法,你可以在CentOS系统中自定义回收站策略,以满足不同的需求。