如何不刪除我所在目錄中的檔案?

如何不刪除我所在目錄中的檔案?

我想刪除某個目錄中超過 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天前

相關內容