Shell-修改find​​命令输出

时间:2019-03-19 01:24:08

标签: shell

总有没有打印并输出到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

我想要的只是没有目录名称的文件名吗?有可能吗?

1 个答案:

答案 0 :(得分:1)

如您所见,默认情况下,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