Mik*_*ike 27 ls shell find filenames wildcards
我想查找名称只有 4 个字符的文件。
例如,下有三个文件/tmp
:
$ ls /tmp
txt
file
linux
Run Code Online (Sandbox Code Playgroud)
输出应该只显示,file
因为它只有 4 个字符。
dr_*_*dr_ 53
使用?
通配符进行文件通配:
ls -d /tmp/????
Run Code Online (Sandbox Code Playgroud)
这将打印文件名长度为 4 个字符的所有文件和目录。
正如@roaima 所建议的那样,该-d
标志将阻止ls
显示与模式匹配的子目录的内容。
cuo*_*glm 11
/tmp
仅列出文件:
cd /tmp
find . ! -name . -prune -path './????' -type f
Run Code Online (Sandbox Code Playgroud)
/tmp
递归列出文件:
find /tmp -path '*/????' -type f
Run Code Online (Sandbox Code Playgroud)
尝试:
find /tmp -type f -print| awk -F/ ' length($NF) == 4 '
Run Code Online (Sandbox Code Playgroud)
有什么awk
作用:
/
的字段分隔符,$NF
(最后一个字段)length