【问题标题】:Using find to delete files with same names from two directories使用 find 从两个目录中删除同名文件
【发布时间】:2018-03-29 23:48:38
【问题描述】:

我有一个夜间工作,要从特定文件夹中删除 2 周内未触及的所有文件。

这个命令非常适合:

find /dir1 -type f -name '*.json' -mtime +15 -print -delete

现在我有一个新要求。还有另一个目录 /dir2 ,其中有与 /dir1 同名的文件(可能存在或不存在)。他们持有不同的内容,我不关心他们最后修改的时间。

我只想从 /dir1 中删除的文件名同时从 /dir2 中删除(如果它们确实存在于 /dir2 中)

是否可以在一个班轮中进行?或者我需要为此编写一个 Python 脚本吗?

【问题讨论】:

    标签: linux find


    【解决方案1】:

    你可以做的是:

    • 首先列出要删除的文件

      find /dir1 -type f -name '*.json' -mtime +15 -print > toBeDeleted

    • 然后你在 dir1 和可能在 dir2 中删除它们,方法是在两个目录中执行 rm

      xargs rm < toBeDeleted

    【讨论】:

    • 是的,我必须在 find 命令中添加 -exec basename {} \; 才能仅打印出基本名称。然后cd 一次进入每个目录并执行xargs rm 的操作。我希望有一个巧妙的小方法可以做到这一点,但显然不是。无论如何感谢您的建议!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2011-08-19
    • 1970-01-01
    • 2011-08-05
    • 2021-05-29
    • 1970-01-01
    相关资源
    最近更新 更多