如何不删除我所在目录中的文件?

如何不删除我所在目录中的文件?

我想删除某个目录中超过 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天前

相关内容