0

所以我从这个开始

find /path-to-directory -type f -mtime +60 -exec ls -l {} \; > /path-to-directory/filenames.txt
find /path-to-directory -mtime +60 -exec rm -f {} \;

它给了我超过 60 天的文件列表,但我希望 txt 文件按从最旧到最新的顺序显示文件,我不在乎顺序是否真的颠倒了,但我似乎无法获得上下文正确的

我还需要继续吗 -type f还是-exec rm -f暗示

目标是记录已删除文件。我很想看看是否可以让目录的变量与文本文件的名称相匹配。

4

2 回答 2

2

我希望 txt 文件按从最旧到最新的顺序显示文件

尝试ls -ltr使用xargs

find /path-to-directory -type f -mtime +60 -print0 | xargs -0 ls -ltr > /path-to-directory/filenames.txt

我还需要在 -exec rm -f 上保留 -type f 还是暗示

您需要指定-type f是否只希望删除文件。否则它也会删除目录。

于 2013-11-12T16:27:52.680 回答
1

但我希望 txt 文件按从最旧到最新的顺序显示文件

find /path-to-directory -type f -mtime +60 -printf "%T@ %p\n" | sort

将按所需顺序返回文件列表。但是,它将包含一个附加字段(自 1970 年 1 月 1 日 00:00 GMT 以来的秒数)。为了删除附加字段,您可以说:

find /path-to-directory -type f -mtime +60 -printf "%T@ %p\n" | sort | cut -d' ' -f2

我还需要继续吗-type f还是-exec rm -f暗示

不,您需要保留它,否则find也会返回目录。

于 2013-11-12T16:14:46.357 回答