列出包含已编辑文件的目录

时间:2014-07-18 12:16:42

标签: linux directory find

我有一个包含许多目录的复杂目录结构,每个目录都有许多子目录,每个子目录都有很多子目录和文件。

我想要一个顶级目录列表,其中包含过去24小时内编辑过的文件。

我已经使用find . -mtime -1 -ls列出了所有已编辑的文件,但我只对它们所在的顶级目录感兴趣。

3 个答案:

答案 0 :(得分:2)

你可以:

find . -mindepth 2 -mtime -1 | awk -F/ '!a[$2]++ { print $2 }'

具体检查文件(而不是目录):

find . -mindepth 2 -type f -mtime -1 | awk -F/ '!a[$2]++ { print $2 }'

答案 1 :(得分:1)

以下管道将执行:

find -mindepth 2 -mtime -1 | sed 's#\./\([^/]*\).*#\1#' | sort | uniq

请注意,我使用-mindepth 2来阻止find返回已更改但位于当前文件夹而不是子文件夹中的文件。

答案 2 :(得分:0)

find . -type f -mtime +1 -exec dirname {} \;