查找名称为 4 个字符长的文件

查找名称为 4 个字符长的文件

我想查找名称只有 4 个字符的文件。

例如,下面有三个文件/tmp

$ ls /tmp
txt
file
linux

输出应该只显示,file因为它只有 4 个字符。

答案1

使用?通配符进行文件匹配:

ls -d /tmp/????

这将打印文件名长度为 4 个字符的所有文件和目录。

正如 @roaima 所建议的,该-d标志将阻止ls显示与该模式匹配的子目录的内容。

答案2

仅列出文件/tmp

cd /tmp
find . ! -name . -prune -path './????' -type f

递归列出文件/tmp

find /tmp -path '*/????' -type f

答案3

尝试:

find /tmp -type f -print| awk -F/ ' length($NF)  == 4 '

什么awk是:

  • 用作/字段分隔符,
  • 查找文件名$NF(最后一个字段)
  • 计算length
  • 并检查值是否为 4,然后打印它。

答案4

还有一个perl(5.10 或更高版本)解决方案:

perl -E 'say for </tmp/????>;'

稍微灵活的版本,您可以指定所需的长度:

perl -E 'my $w = "?" x shift; say for </tmp/$w>;' 4

相关内容