我有一个名为“ parent_folder”的父文件夹,其中包含许多子文件夹,在这些子文件夹中是一个名为“ foo.mp4”的文件。
通过执行以下操作,我可以轻松找到这些文件:
mymacbook:parent_folder username$ find ./ -name "foo.mp4" -exec echo {} \;
现在返回相对于parent_folder /的每个文件的路径
./path/to/foo.mp4
我怎么能只返回路径,而没有文件名?
你能举个例子吗?我应该将它放在“ -exec”之后还是之前?
—
dubbelj 2015年
find ./ -name "foo.mp4" -printf "%h\n"
将为每个找到的文件打印路径(逐行)。与往常一样,没有人使用,-exec echo {}
因此有-print
(默认甚至被省略)或printf
动作。
@Costas,
—
斯特凡Chazelas
-printf
仅适用于GNU。OP提到的OS / X(BSD系统)。
@StéphaneChazelas谢谢。我不知道OS / X(BSD)的这种限制。可怜的可怜的mac用户!
—
Costas
-printf
%h
文件名的前导目录(除了最后一个元素以外的所有目录)。如果文件名不包含斜杠(因为它在当前目录中),则%h说明符将扩展为“”。。