列出仅在当前目录中超过x天的所有文件

时间:2015-12-01 13:34:14

标签: bash shell unix

我是unix的新手,在其他问题上无法获得适当的结果。

我想只列出当前目录中超过x天的文件。我有以下限制

  • 仅列出当前文件夹中早于30的文件 天
  • 输出不应包含目录和子目录
  • 这应列出与" ls"类似的文件。命令
  • 输出应该看起来像file1 file2 file3 ..

我使用了find . -mtime +30。但这也会在子目录中提供文件和文件。我想限制递归搜索而不是搜索目录。

提前多多感谢!

4 个答案:

答案 0 :(得分:6)

你可以这样做:

find ./ -maxdepth 1 -type f -mtime +30 -print

如果遇到问题,请执行:

find ./ -depth 1 -type f -mtime +30 -print

答案 1 :(得分:0)

您可以使用find . -maxdepth 1来做到这一点。

答案 2 :(得分:0)

要添加@Richasantos的答案:

这很好用

$ find . -maxdepth 1 -type f -mtime +30

打印:

./file1
./file2
./file3

您现在可以将其通过管道传递到所需的任何对象。假设您要删除所有这些旧文件:

$ find . -maxdepth 1 -type f -mtime +30 -print | xargs /bin/rm -f

来自man find

  

如果将find的输出传递到另一个程序中,并且最有可能的是正在搜索的文件可能包含换行符,那么您应该认真考虑使用-print0选项而不是{{ 1}}。

所以使用-print

-print0

打印(中间有空字符):

$ find . -maxdepth 1 -type f -mtime +30 -print0

并用于删除这些旧文件:

./file1./file2./file3

答案 3 :(得分:0)

对此稍有不同:find用途广泛,您可以如下指定大小和时间:

这将为您找到所有大于4个月且大于1兆的日志。 如果您删除+号,它将找到大小大致相同的文件。

find /var/log -type f -mtime +120 -size +1M
/var/log/anaconda/journal.log
/var/log/ambari-agent/ambari-alerts.log.23
/var/log/ambari-agent/ambari-alerts.log.22
/var/log/ambari-agent/ambari-alerts.log.24
/var/log/ambari-agent/ambari-alerts.log.25
/var/log/ambari-agent/ambari-alerts.log.21
/var/log/ambari-agent/ambari-alerts.log.20
/var/log/ambari-agent/ambari-alerts.log.19

更好的是,您可以将其输入ls

find /var/log -type f -mtime +120 -size +1M -print0 | xargs -0 ls -lh
-rw-r--r--. 1 root root 9.6M Oct  1 13:24 /var/log/ambari-agent/ambari-alerts.log.19
-rw-r--r--. 1 root root 9.6M Sep 27 07:44 /var/log/ambari-agent/ambari-alerts.log.20
-rw-r--r--. 1 root root 9.6M Sep 22 03:32 /var/log/ambari-agent/ambari-alerts.log.21
-rw-r--r--. 1 root root 9.6M Sep 16 23:23 /var/log/ambari-agent/ambari-alerts.log.22
-rw-r--r--. 1 root root 9.6M Sep 11 19:12 /var/log/ambari-agent/ambari-alerts.log.23
-rw-r--r--. 1 root root 9.6M Sep  6 15:02 /var/log/ambari-agent/ambari-alerts.log.24
-rw-r--r--. 1 root root 9.6M Sep  1 10:51 /var/log/ambari-agent/ambari-alerts.log.25
-rw-------. 1 root root 1.8M Mar 11  2019 /var/log/anaconda/journal.log