linux - 如何删除超过 X 天的文件并打印已删除文件的列表

标签 linux bash shell

假设脚本中有以下调用:

find $dir/$CACHE_DIR_SUBPATH -type f -mtime +$RETENTION_DAYS -delete

有没有一种巧妙的方法来打印要删除的文件名,或者是调用 find 两次的最佳选择,如下所示:

find $dir/$CACHE_DIR_SUBPATH -type f -mtime +$RETENTION_DAYS
find $dir/$CACHE_DIR_SUBPATH -type f -mtime +$RETENTION_DAYS -delete

最佳答案

您应该简单地在 find 命令行中引入 -print 选项。

换句话说:

find $dir/$CACHE_DIR_SUBPATH -type f -mtime +$RETENTION_DAYS -print -delete

另一种方式可能是:

find $dir/$CACHE_DIR_SUBPATH -type f -mtime +$RETENTION_DAYS -exec echo "Deleting file '{}'..."; rm {} \;

关于linux - 如何删除超过 X 天的文件并打印已删除文件的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73318131/

相关文章:

linux - 抄送: unrecognized option '-KPIC'

linux - 在远程系统上复制文件

linux - 使用 Windows 批处理命令从环境变量中提取 IP 地址和端口号

linux - 无需创建中间文件即可高效传输控制台数据、tar 和 gzip/bzip2

Git post-checkout - 如果 Composer 安装失败如何拒绝推送

c - 如何每周自动更改unix系统密码?

linux - 如何在ssh控制台中将一个文件夹的所有文件移动到另一个文件夹?

Bash -eq 不起作用,可能是因为 cal

linux - 计算 PATH 中每个变量中的可执行文件数

linux - 如何在 Csh 中捕获错误或异常?