我有一个包含许多可执行文件的文件夹,我想在 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而其他答案则需要其他程序来操作您的结果。
使用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)