shell - Shell - 修改 find 命令输出
问题描述
无论如何要打印并输出到 find 命令而不在输出中列出 find 的目录?意思是如果我发出
find /home/people/name -type f -name >> /output/log/output.txt
日志中的输出写为:
/home/people/name/filename1.txt
/home/people/name/filename2.txt
/home/people/name/filename3.txt
我想要的只是没有目录名的文件名?那可能吗?
解决方案
默认情况下,如您所见,find
打印完整路径:
$ find /home/people/name -type f
/home/people/name/filename1.txt
/home/people/name/filename3.txt
/home/people/name/filename2.txt
find
但是,确实提供了对使用输出的控制-printf
。要仅获取没有路径的文件名,请尝试:
$ find /home/people/name -type f -printf '%f\n'
filename1.txt
filename3.txt
filename2.txt
%f
告诉find
你想要没有路径的文件名。 \n
告诉find
您希望在每个文件名后有一个换行符。
当然,输出可以保存在文件中:
$ find /home/people/name -type f -printf '%f\n' >output.txt
$ cat output.txt
filename1.txt
filename3.txt
filename2.txt
推荐阅读
- sql - 查询jsonb数组对象(和索引)中的jsonb数组对象
- c - ld:最终链接失败:构建 Linux 内核 5.8.9 时内存耗尽
- windows - Electron:在 macOS 和 Windows 之间共享相同的项目文件夹
- c# - 异步客户端套接字 C#。如何在不阻塞程序运行的情况下循环等待来自服务器的信息?
- java - 未在 xml ResourceNotFoundException 中加载矢量可绘制对象
- bash - 在 awk 中获取多个压缩文件的 FILENAME
- angular - Angular 7服务器端渲染同时服务:ssr
- javascript - Nest.js Jest 不能模拟测试应用,但可以模拟测试控制器
- html - 转换:translateY() 在 Safari 中不起作用
- reactjs - 使用谷歌地图地理定位 api 进行准确的地理定位