【问题标题】:List all files older than x days only in current directory仅列出当前目录中超过 x 天的所有文件
【发布时间】:2015-12-01 13:34:13
【问题描述】:

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

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

  • 仅列出当前文件夹中超过 30 年的文件 天
  • 输出不应包含目录和子目录
  • 这应该列出类似于“ls”命令的文件
  • 输出应该类似于file1 file2 file3 ..

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

提前非常感谢!

【问题讨论】:

  • 看看man find

标签: bash shell unix


【解决方案1】:

你可以这样做:

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

如果有问题,请执行:

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

【讨论】:

    【解决方案2】:

    您可以使用find . -maxdepth 1 排除子目录。

    【讨论】:

    • 发现:未知谓词`-maxdepth=1'
    【解决方案3】:

    补充@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 选项而不是 -print

    所以使用-print0

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

    打印(中间有空字符):

    ./file1./file2./file3
    

    并且像这样用于删除那些旧文件:

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

    【讨论】:

      【解决方案4】:

      对此略有不同: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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-28
        • 1970-01-01
        • 1970-01-01
        • 2022-07-06
        相关资源
        最近更新 更多