繁体   English   中英

如何列出 Linux 终端中大小/长度为零的目录中的文件?

[英]How can I list the files in a directory that have zero size/length in the Linux terminal?

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

ls -lsh /mydirectory

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

有几种方法可以 go 如果你想坚持使用ls -l你可以在管道中使用例如awk来进行过滤。

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

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

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

find /mydirectory -maxdepth 1 -size 0 -ls

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

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

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

解释:

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

否定那个

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM