我已将一个文件夹安装到种子箱中。在文件夹中我使用syncthing。所以它创建一个“.stfolder”用于同步。基本上,我无法找到要运行的脚本,该脚本显示“查看 x 文件夹和 xx 子文件夹”,但忽略隐藏文件夹并删除早于 xxx 小时的所有内容。
我尝试修改“ find /path/to/files* -mtime +5 -exec rm {} ; ”,但没有成功,它一直在寻找隐藏文件夹
文件夹结构是这样的并且
downloads/Movies/.stfolder
有downloads/TV/.stfolder
文件和子文件夹TV
Movies
最终我在树莓派 pi4 上运行它。我的目的是使用 cron 作业来调用脚本每 12 小时左右运行一次。我使用curftpfs将种子盒安装到我的rasperrypi 4上
任何有效的解决方案将不胜感激。谢谢
答案1
LC_ALL=C find /path/to/files/ -name '.*' -prune -o \
-mtime +5 -type f -exec rm -f {} +
/path/to/files
将删除目录中及其目录下最近 6(而不是 5)天内未修改的常规文件,忽略隐藏文件(包括从目录树find
下降的隐藏目录中删除的文件)。
如果只是.stfolder
要跳过的目录,您可以执行以下操作:
find /path/to/files/ -name .stfolder -type d -prune -o \
-mtime +5 -type f -exec rm -f {} +
(在这种情况下,这是不必要的,因为这只是为了解决某些实现中非字符之间不匹配的LC_ALL=C
事实)。*
find
使用zsh
,您可以执行以下操作:
rm -f /path/to/files/**/*(.m+5)
由于默认情况下会跳过隐藏的目录/文件。
或者对于除目录中或目录下的文件之外的所有旧文件.stfolder
:
set -o extendedglob # best in ~/.zshrc
rm -f /path/to/files/(^.stfolder/)#*(D.m+5)
(其中D
禁用隐藏文件/目录的跳过,并(^.stfolder)#
匹配除调用的子目录之外的任意数量的子目录.stfolder
)。