查找没有路径的可执行文件名

j0h*_*j0h 9 find

我有一个包含许多可执行文件的文件夹,我想在 find 命令的结果中省略路径。这个命令显示了我想查看的文件,但它也列出了路径;我只想要文件名。

find /opt/g09 -maxdepth 1 -executable
Run Code Online (Sandbox Code Playgroud)

我怎样才能让 find 的输出只显示文件名,而不是完整路径?

nix*_*wer 10

或使用:

find /opt/g09 -maxdepth 1 -executable -printf "%f\n"
Run Code Online (Sandbox Code Playgroud)

添加-type f标志在这里也有效。

find手册:

 %f     File's name with any leading directories removed (only the last element).
Run Code Online (Sandbox Code Playgroud)

这个答案只要求您拥有 GNU,find而其他答案则需要其他程序来操作您的结果。


hee*_*ayl 6

使用basename

find /opt/g09 -maxdepth 1 -executable -exec basename {} \;
Run Code Online (Sandbox Code Playgroud)

来自man basename

Print NAME with any leading directory components removed.
Run Code Online (Sandbox Code Playgroud)

此外,您正在尝试find一切,以将您的搜索限制为仅文件,请使用:

find /opt/g09 -type f -maxdepth 1 -executable -exec basename {} \;
Run Code Online (Sandbox Code Playgroud)