2016-04-07 97 views
1

對於備份腳本中的用法,我正在尋找一種方法來查找自某段時間以來已被修改的所有文件夾。我得到這個:Bash腳本查找帶有已修改文件的目錄

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

試試這個:

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到刪除重複項。請注意,它也會從結果中刪除最初的./,但看起來您並不真正需要/不需要該部分。

+0

謝謝你,我也在這個方向上思考,但不能讓sed部分正確。這工作完美! – Frank

相關問題