我有一個複雜的目錄結構,包含許多目錄,每個目錄有許多子目錄,每個子目錄有更多的子目錄和文件。列出包含已編輯文件的目錄
我想要一個包含過去24小時內編輯過的文件的頂級目錄列表。
我已經使用find . -mtime -1 -ls
列出所有編輯過的文件,但我只關心他們所在的頂層目錄而不是文件本身。
我有一個複雜的目錄結構,包含許多目錄,每個目錄有許多子目錄,每個子目錄有更多的子目錄和文件。列出包含已編輯文件的目錄
我想要一個包含過去24小時內編輯過的文件的頂級目錄列表。
我已經使用find . -mtime -1 -ls
列出所有編輯過的文件,但我只關心他們所在的頂層目錄而不是文件本身。
您可以:
find . -mindepth 2 -mtime -1 | awk -F/ '!a[$2]++ { print $2 }'
要與特定的文件(不是目錄)的檢查:
find . -mindepth 2 -type f -mtime -1 | awk -F/ '!a[$2]++ { print $2 }'
下管會做:
find -mindepth 2 -mtime -1 | sed 's#\./\([^/]*\).*#\1#' | sort | uniq
請注意,我使用-mindepth 2
防止找到返回它已經改變,但位於當前文件夾,而不是在子文件夾中的文件。
find . -type f -mtime +1 -exec dirname {} \;
好一個!另外還要發佈一個額外的'awk'解決方案,因爲與我的解決方案相比,它可以節省兩個額外的流程。你快了! :) – hek2mgl