【问题标题】:Remove all sub-directories and files except for one删除除一个以外的所有子目录和文件
【发布时间】:2018-01-05 01:45:08
【问题描述】:

我的文件夹结构如下:

/home/user/<individual_user>

在某些<individual_user> 文件夹中,有一个我想保留的.bashrc 文件,但是我想删除/home/user/<individual_user> 下的所有文件和文件夹,除了.bashrc 文件。应删除<individual_user> 下的所有其他文件和子目录。 <individual_user> 文件夹的数量不确定。

我更愿意将此命令作为 cron 下的单行执行。

【问题讨论】:

    标签: linux bash cron find


    【解决方案1】:

    编辑后,您可以使用:

    find /home/user -mindepth 2 -not -path '*/.bashrc' -print
    

    对输出满意后,可以将-print 替换为-delete 来实现:

    find /home/user -mindepth 2 -not -path '*/.bashrc' -delete
    

    【讨论】:

    • 我原来的帖子有问题。现在已经修复了。
    【解决方案2】:

    这个怎么样:

    find /home/user ! -name .bashrc -exec rm -rf {} +
    

    由于显而易见的原因,我没有测试过它;)

    【讨论】:

    • 我没有得到“明显的原因”。你所拥有的会更加“明显”。并提供了一个工作演示 ideone.com 或类似的
    • 1.创建很多文件 2. 测试它 3. 利润
    • 我原来的帖子有问题。现在已经修复了。
    猜你喜欢
    • 1970-01-01
    • 2019-11-21
    • 2021-06-11
    • 2015-11-05
    • 1970-01-01
    • 2010-10-26
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多