bash find命令,需要路径



我想使用不在/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 {} ;

最新更新