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