【问题标题】:How to remove all subfolders that contain certain file and do not contain other file如何删除包含某个文件但不包含其他文件的所有子文件夹
【发布时间】:2014-01-13 14:10:30
【问题描述】:

我想删除包含文件core.properties.unloaded 并且不包含 文件core.properties 的工作目录的所有直接子文件夹。我知道这一定是findrm 的组合。但是如何结合呢?

感谢您的帮助!

【问题讨论】:

    标签: linux find rm


    【解决方案1】:

    就这样开始

    $ find . -name "*"
    .
    ./dir1
    ./dir1/core.properties.unloaded
    ./dir2
    ./dir2/core.properties
    ./dir3
    ./dir3/core.properties
    ./dir3/core.properties.unloaded
    

    我跑了这个

    for i in `find -mindepth 2 -maxdepth 2 -name "core.properties.unloaded" | awk -F'/' '{print $2}'`
    do
      if [ ! -f "$i"/core.properties ]; then 
        rm -rf "$i"
      fi
    done
    

    然后find命令显示只删除了dir1(其他两个目录包含core.properties或者不包含core.properties.unloaded)-

    $ find . -name "*"
    

    。 ./dir2 ./dir2/core.properties ./dir3 ./dir3/core.properties ./dir3/core.properties.unloaded

    【讨论】:

    • 有效!伟大的!谢谢。
    猜你喜欢
    • 2015-09-14
    • 2014-02-15
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    • 1970-01-01
    • 2011-04-26
    • 2016-02-23
    • 2011-11-24
    相关资源
    最近更新 更多