我想使用不在/bin中的find命令获取/bin中包含字母'm'的文件的文件名。当/bin是我的工作目录时,它可以正常工作,但当我在路径中添加/bin作为要求时,它不会独立于当前目录返回任何内容。
作品:
find -type f -name "*m*" -exec basename {} ;
没有:
find -type f -name "*m*" -path "/bin/*" -exec basename {} ;
我怀疑您不想使用-path /bin…
,而只想使用
find /bin -type f -name "*m*" -exec basename {} ;
find
的第一个参数是要搜索的路径。-path
标志是一个模式匹配功能,用于检查模式是否与找到的名称的完整路径匹配。
事实上,如果你在BSD上尝试过这个命令,比如macOS自带的,它甚至不会让你尝试其中一个命令,因为你没有包含路径。
find -type f … # not ok
find . -type f … # ok
find /bin -type f … # ok
这将起作用。
find /bin/* -type f -name "*m*" -exec basename {} ;
这相当于转到/bin文件夹并执行
find -type f -name "*m*" -exec basename {} ;