我有一个包含许多目录的复杂目录结构,每个目录都有许多子目录,每个子目录都有很多子目录和文件。
我想要一个顶级目录列表,其中包含过去24小时内编辑过的文件。
我已经使用find . -mtime -1 -ls
列出了所有已编辑的文件,但我只对它们所在的顶级目录感兴趣。
答案 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 {} \;