find管理檔案的筆記與技巧

find用於時間區間搜尋及搬動與管理檔案,真的很好用


列出檔案:
find /path/ -type f -exec ls -l {} \;

列出某個時間區間檔案
find find /path/ -newermt "2014-10-01 00:00:00" ! -newermt "2014-11-01 00:00:00"

列出365天前的檔案
find /path/ -mtime +365 -type f -print

列出365天前的檔案,並把檔案搬到新的位置
find /path/ -mtime +365 -type f -print -exec mv "{}" /path_new \;

列出特定檔名的檔案,並將檔案搬到指定位置
find /path/ -name "*file_name*" -exec mv {} /path_new \;

找出空目錄
find /path/ -depth -empty -type d -print

用find查詢檔案大小:
find /path/ -mtime +750 -type f -print -exec du -ach {} + | tail -n 1

用find查詢某個時間區間檔案檔案大小
find /path/ -newermt "2014-10-01 00:00:00" ! -newermt "2014-11-02 00:00:00" -type f -print -exec du -ach {} + | tail -n 1

變更檔案時間的作法
touch -t 201509011649 filename

查詢所有硬碟容量大小
du -h

刪除7天前的資料,但略過.htaccess
find /path/ -name .htaccess -prune -o -atime +7 -type f -print -exec rm -f '{}' \;

若是要略過多個目錄的寫法
find . -type d \( -name media -o -name images -o -name backups \) -prune -o -print

參考資料:http://www.liamdelahunty.com/tips/linux_find_exclude_multiple_directories.php

 -exec 後面有rm 或 mv 請務必小心使用!!!

留言

熱門文章