【问题标题】:How to find files greater than a size in linux如何在linux中查找大于大小的文件
【发布时间】:2020-07-16 16:16:57
【问题描述】:

我想查找从一个目录开始的子目录中所有文件的用户、大小、修改日期和完整文件路径。到目前为止,我必须关注:

nohup sudo \
tree /work/mydir \
-sufiD \
--noreport \
--timefmt="%Y-%m-%d" | \
sed -e 's/ \+/ /g' -e 's/\[//g' -e 's/\]//g' -e 's/\.\///g' -e 's/ /|/g' | \
tail -n+2 \
> usage_mydir.txt &

这给了我想要的输出,除了它列出了所有文件;我想过滤掉小于 10MB 的文件,这将大大减少我的输出文件(从超过 500 MB 到小于 5MB)。

我愿意接受任何其他命令,例如find . -type f -size +10M。 但我需要文件的所有者、大小和最后修改时间。

【问题讨论】:

  • 为什么投反对票?
  • 我相信反对者认为您的问题不是关于编程,而是关于使用 Linux 命令。我宁愿认为这种复杂性的命令仅在脚本内部才有意义,而不是交互式地,因此觉得这里的问题是可以的。为了解决您的问题:我需要所有者、大小和上次修改时间:您是否考虑过对文件运行 stat 命令?

标签: linux shell unix tree find


【解决方案1】:

find-printf 选项可以打印所有者(%u)、大小(%s)和修改时间(%t)。

find . -type f -size +10M -printf '%p %u %s %t\n'

【讨论】:

  • 如何格式化时间?我已经看到了 find 的手册页;有一个 %Tk 选项;但我无法使用它创建日期格式 %Y-%m-%d ..
  • @AbhishekJain:使用%TY-%Tm-%Td
猜你喜欢
  • 2011-01-22
  • 2020-11-18
  • 1970-01-01
  • 2017-07-10
  • 1970-01-01
  • 2012-05-20
  • 1970-01-01
  • 1970-01-01
  • 2011-08-10
相关资源
最近更新 更多