Rij*_*hna 3 linux find xargs rm
我有一个脚本来删除过去 2 天之前创建的所有文件夹。现在,在星期一,它只删除上周的每个文件夹,这是我不想要的。
对于此命令,是否可以选择仅考虑工作日?整个脚本每天运行。我正在使用这个:
find /my-folder/sub-folder/ -type d -ctime +1 | xargs rm -rf
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
find /my-folder/sub-folder/ -type d -ctime "+$((
1 + 2 * ($(date +%u) <= 2) ))" -prune -exec echo rm -rf {} +
Run Code Online (Sandbox Code Playgroud)
也就是说,如果当前日期是 1(星期一)或 2(星期二)(假设您仅在工作日运行该脚本),则添加 2 天。
我添加了一个,-prune
因为下降到您要删除和替换的目录是没有意义的,xargs
这对于包含空格或反斜杠或带有标准-exec ... {} +
替代引号的文件名会失败。
请注意,当ctime
目录中的文件被修改或在子目录中添加或删除文件时,目录的 不会更新。
归档时间: |
|
查看次数: |
243 次 |
最近记录: |