【问题标题】:Selective Sub Directory Deleting选择性子目录删除
【发布时间】:2014-06-23 04:20:57
【问题描述】:

到目前为止,我有这个脚本。 我现在的文件夹结构是 /root/test/ 在测试中,每个月都会根据 (date +%B) 创建一个名为 May Jun July 的文件夹

我希望脚本删除所有子目录减去与本月匹配的目录(日期 +%B)并保留其内容。

目前它会删除除子目录匹配之外的所有内容。五月完全是空的。有什么想法吗?

#!/bin/bash

LinkDest=/root/test
m_date=$(date +%B)

find $LinkDest/ -not -name May -xdev -depth -mindepth 1 -exec rm -Rf {} \;

【问题讨论】:

    标签: linux bash directory find


    【解决方案1】:

    你可以使用:

    find $LinkDest/ -not -path "*$m_date*" -xdev -depth -mindepth 1 -exec rm -Rf '{}' \;
    

    【讨论】:

    • 是否可以添加两条路径忽略... "$m_date,full"
    • 当然可以:find $LinkDest/ -not -path "*$m_date*" -not -path "*$p_date*"
    【解决方案2】:

    尝试在没有-exec 的情况下运行find 以查看将要删除的内容。问题是-name 试图匹配整个名称,而不是其中的一部分。你需要-path:

    find -not -path "*/$m_date" -not -name $m_date
    

    【讨论】:

      猜你喜欢
      • 2016-12-10
      • 1970-01-01
      • 2013-02-19
      • 1970-01-01
      • 1970-01-01
      • 2013-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多