【问题标题】:How can I list the files in a directory that have zero size/length in the Linux terminal?如何在 Linux 终端中列出大小/长度为零的目录中的文件?
【发布时间】:2022-01-05 10:43:22
【问题描述】:

我刚开始使用 Linux 终端,所以我才刚刚开始了解我可以使用的命令。我已经弄清楚如何使用 Linux 终端列出目录中的文件,以及如何根据文件大小列出它们。我想知道是否有办法只列出特定文件大小的文件。现在,我正在尝试列出大小为零的文件,例如您可能使用touch 命令创建的文件。我查看了我在使用 ls 时可以使用的标志,但我找不到我正在寻找的确切内容。这是我现在拥有的:

ls -lsh /mydirectory

“mydirectory”部分只是一个占位符。有什么我可以添加的,只会列出大小为零的文件吗?

【问题讨论】:

    标签: linux list terminal directory ls


    【解决方案1】:

    有几种方法可以解决这个问题;如果您想坚持使用ls -l,您可以使用例如awk 在管道中进行过滤。

    ls -lsh /mydirectory | awk '$5 == 0'
    

    这里,$5ls 输出中的第五个字段,即大小。

    另一种方法是使用不同的工具,find

    find /mydirectory -maxdepth 1 -size 0 -ls
    

    这也会列出隐藏文件,类似于ls -la-maxdepth 1 在那里,因此如果您有嵌套目录,它就不会遍历目录树。

    【讨论】:

      【解决方案2】:

      一个简单的脚本就可以做到这一点。

          for file_name in *
          do
            if [[ !( -s $file_name ) ]]
            then
                echo $file_name
            fi
          done
      

      解释:

      for 是一个循环。 * 给出当前目录中所有文件的列表。 -s file_name 如果文件的大小大于 0,则为真。

      !否定它

      【讨论】:

      • 在段落中格式化代码有助于提高可读性。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-20
      • 2021-01-23
      • 1970-01-01
      • 1970-01-01
      • 2014-07-16
      • 1970-01-01
      • 2019-08-02
      相关资源
      最近更新 更多