在 CentOS(以及大多数 Linux 发行版)里,本身是没有 Windows 那种“回收站(Recycle Bin)”机制的。
你提到的 “centos recycle”,一般常见于下面几种情况,我分别说明如何“排除文件”。
rm 被 alias 成“回收站脚本”有些人会写脚本,把 rm 改成移动到 ~/.trash 或 /tmp/trash。
alias rm
如果看到类似:
alias rm='mv --target-directory=~/.trash'
说明是“伪回收站”。
\rm file.txt
或
/bin/rm file.txt
在脚本里加排除逻辑,例如:
case "$1" in
*.log|*.tmp)
/bin/rm "$1"
;;
*)
mv "$1" ~/.trash
;;
esac
(Windows 访问 CentOS 共享时看到的“回收站”)
[share]
path = /data/share
read only = no
recycle:repository = .recycle
recycle:keeptree = yes
recycle:versions = yes
recycle:exclude = *.tmp *.log ~$*
recycle:exclude_dir = .git node_modules
含义:
recycle:exclude:不进回收站的文件recycle:exclude_dir:不进回收站的目录修改后重启 Samba:
systemctl restart smb nmb
例如:
那就不是“recycle”,而是:
rsync --excludefind 排除示例:
rsync -a --exclude='*.log' /src/ /backup/
最干净的方式:
/bin/rm -rf dir/
| 场景 | 排除方式 |
|---|---|
| 自定义 rm 回收站 | \rm 或改脚本 |
| Samba recycle | recycle:exclude |
| 备份/同步 | rsync --exclude |
| 真删除 | /bin/rm |
如果你能告诉我:
我可以直接给你一份可复制的配置。