在Linux中如何查找文件名以zi开头,长度恰好为8个字符

In Linux How to find file names starts with zi and exactly 8 character in length

我怎样才能找到长度正好为8个字符的文件,它以zi开头实例名称:

1
2
3
4
5
/home/ziDZaTxG
/home/ziIbLnaG
/home/ziQxgoXh
/home/ziw2NOBD
/home/zixqlM2S

find /home/ -name"zi*"

这可以正常工作并找到它,但不能计算出8个匹配的字符。


使用问号通配符,它正好匹配一个字符。

1
find /home -name"zi??????"

下面是一个运行示例:

1
2
3
4
5
[developer:~/t] $ touch zi1
[developer:~/t] $ touch zi123456
[developer:~/t] $ touch zi1234567
[developer:~/t] $ find . -name"zi??????"
./zi123456

您还可以选择使用-regex选项"查找"。


要查找文件名的长度,需要删除路径,并且只匹配最后一个文件名之后的字符/

将输出传输到grep命令:

1
find /home/ -name"zi*" |grep -P '/.{8}$'

-P:激活Perl表达式

。走到最后

8:8个字符

美元:结束