Bash脚本在其中查找包含已修改文件的目录

时间:2016-04-07 07:28:57

标签: linux bash shell find

在备份脚本中使用我正在寻找一种方法来查找自某段时间以来已修改过的所有文件夹。我得到了这个:

find ./ -maxdepth 1 -mtime -1 -type d

不幸的是,这并没有返回任何结果,因为目录本身没有被修改,只有一些目录中的内容。完整的脚本现在是:

repodir=/somepath
backupdir=/someotherpath

find . -mtime -1 -type d -maxdepth 1|while read repo; do
  svnadmin dump -q $repodir/$repo | bzip2 -9 > $backupdir/$repo-`date +%F`.dump.bz2
done

1 个答案:

答案 0 :(得分:1)

试试这个:

find . -mindepth 2 -type f -mtime -1 | sed 's,^\./,,;s,/.*$,,' | sort -u | \
while read repo; do
   svnadmin dump -q $repodir/$repo | bzip2 -9 > $backupdir/$repo-`date +%F`.dump.bz2
done

它搜索已更改的子目录中的文件,然后从路径中删除除第一个目录组件之外的所有文件,并使用sort -u删除重复项。请注意,它也会从结果中删除最初的./,但看起来您似乎并不真正需要/需要该部分。