【问题标题】:Find and Delete a Folder when it has a specfic parent folder查找并删除具有特定父文件夹的文件夹
【发布时间】:2014-11-12 14:42:27
【问题描述】:

我正在尝试搜索并删除 4TB 磁盘上程序的旧备份。对于不同的用户,可能有超过 500 个实例,等等......该文件夹称为 ACCOUNTS,它位于 /home/local/*/backups/Acc/ACCOUNTS 中,其中 * 是用户名。问题是最近的备份位于 /home/local/*/backups/Acc/Mon/ACCOUNTS 7 天轮换。

我可以使用 find 来查找和删除 ACCOUNTS 的所有实例,但这也会删除我想要保留的那些实例。

那么如何搜索一个名为 Accounts 的文件夹,该文件夹的父文件夹名为 Acc 并删除它,同时保留所有其他 ACCOUNTS 实例完好无损?

我试过find /home/local/ -type d -name "Acc/ACCOUNTS" -exec rm -rf {} \; 但这不起作用,因为它会认为正斜杠是名称的一部分并发出警告。

【问题讨论】:

    标签: shell unix find directory


    【解决方案1】:
    rm -r /home/local/*/backups/Acc/ACCOUNTS  
    

    应该可以。或者如果你有很多账号,上面点击ARG_MAX

    for f in /home/local/*/backups/Acc/ACCOUNTS; do rm -r "$f"; done
    

    你可以通过echo home/local/*/backups/Acc/ACCOUNTS来测试它要删除的内容

    如果出于某种原因你想要find,你可以做很多不同的事情,可能最简单的就是使用-regex

    find /home/local/ -type d -regex '.*/Acc/ACCOUNTS' -exec rm -rf {} \; 
    

    -exec rm -rf {} \; 替换为-print 进行测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-27
      • 2012-11-19
      • 1970-01-01
      • 2012-12-15
      • 1970-01-01
      • 2013-04-12
      • 1970-01-01
      相关资源
      最近更新 更多