'find'(命令)使用 -wholename 找不到任何内容
'find' (command) finds nothing with -wholename
为什么这个命令有效:
/home/user1/tmp $ find ./../.. -wholename '.*/tmp/file.c' -exec echo '{}' \;
./../../user2/tmp/file.c
/home/user1/tmp $
这条命令不起作用? (一无所获)
/home/user1/tmp $ find /home -wholename '.*/tmp/file.c' -exec echo '{}' \;
/home/user1/tmp $
第一个命令生成以 ./../..
开头的文件名。因此全名模式将匹配,因为它们以 .
.
开头
第二个命令生成以 /home
开头的文件名。但是,全名模式仍在寻找以 .
开头的路径,在这种情况下不会匹配任何文件。
请注意,模式是不是正则表达式。如果您期待它们,请查看 -regex
选项。
为什么这个命令有效:
/home/user1/tmp $ find ./../.. -wholename '.*/tmp/file.c' -exec echo '{}' \;
./../../user2/tmp/file.c
/home/user1/tmp $
这条命令不起作用? (一无所获)
/home/user1/tmp $ find /home -wholename '.*/tmp/file.c' -exec echo '{}' \;
/home/user1/tmp $
第一个命令生成以 ./../..
开头的文件名。因此全名模式将匹配,因为它们以 .
.
第二个命令生成以 /home
开头的文件名。但是,全名模式仍在寻找以 .
开头的路径,在这种情况下不会匹配任何文件。
请注意,模式是不是正则表达式。如果您期待它们,请查看 -regex
选项。