【问题标题】:'find' (command) finds nothing with -wholename'find'(命令)用 -wholename 找不到任何东西
【发布时间】:2015-08-29 12:29:51
【问题描述】:

为什么这个命令有效:

/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 $

【问题讨论】:

  • 你是怎么断定它不起作用的?您的错误信息是什么,请发布?
  • # 符号显示 linux 提示符。 (已编辑)

标签: linux bash directory find


【解决方案1】:

第一个命令生成以./../.. 开头的文件名。因此,全名模式将匹配,因为它们以 . 开头。

第二个命令生成以/home 开头的文件名。但是,wholename 模式仍在寻找以 . 开头的路径,在这种情况下不会匹配任何文件。

请注意,模式不是正则表达式。如果您期待它们,请查看 -regex 选项。

【讨论】:

  • 太棒了!谢谢!为了完美,请将其添加到您的答案中:root@camel:/home/user1/tmp# find /home -wholename '*/tmp/file.c' -exec echo '{}' \;
猜你喜欢
  • 2010-09-06
  • 1970-01-01
  • 2016-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-15
相关资源
最近更新 更多