2014-07-18 65 views
0

我有一個複雜的目錄結構,包含許多目錄,每個目錄有許多子目錄,每個子目錄有更多的子目錄和文件。列出包含已編輯文件的目錄

我想要一個包含過去24小時內編輯過的文件的頂級目錄列表。

我已經使用find . -mtime -1 -ls列出所有編輯過的文件,但我只關心他們所在的頂層目錄而不是文件本身。

回答

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

好一個!另外還要發佈一個額外的'awk'解決方案,因爲與我的解決方案相比,它可以節省兩個額外的流程。你快了! :) – hek2mgl

1

下管會做:

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

請注意,我使用-mindepth 2防止找到返回它已經改變,但位於當前文件夾,而不是在子文件夾中的文件。

0
find . -type f -mtime +1 -exec dirname {} \; 
相關問題