我想刪除某個目錄中超過 30 天的文件,但不想刪除我所在目錄下的文件。
答案1
若要在刪除檔案之前列出檔案:
find . -maxdepth 1 -mtime +30 -type f -ls
若要刪除檔案:
find . -maxdepth 1 -mtime +30 -type f -exec rm {} +
和
.
指定目前目錄-maxdepth 1
最多下降 1 級目錄-mtime +30
僅限最後修改時間 > 30 天的文件-type f
僅常規文件
答案2
zsh shell 有特殊的通配符擴充功能那會有幫助的。
列出目前目錄中超過 30 天的檔案:
ls -d -- *(.m+30)
刪除目前目錄中超過 30 天的檔案:
rm -- *(.m+30)
zsh 語法*(.m+30)
是通配符,意思是:
*
-- 任意檔名( ... )
-- 限定符為....
-- 常規檔案(不是目錄等)m+30
-- 修改時間大於30天前