Tôi có một thư mục mẹ có tên "Parent_folder" với rất nhiều thư mục con, trong các thư mục con này là một tệp có tên "foo.mp4".
Tôi có thể tìm thấy các tệp này một cách dễ dàng bằng cách làm điều này:
mymacbook:parent_folder username$ find ./ -name "foo.mp4" -exec echo {} \;
Bây giờ trả về đường dẫn của mỗi tệp, liên quan đến Parent_folder /
./path/to/foo.mp4
Làm thế nào tôi có thể trở lại chỉ đường dẫn, mà không có tên tệp?
find ./ -name "foo.mp4" -printf "%h\n"
sẽ in đường dẫn đến từng tệp được tìm thấy (từng dòng một). Nhiều hơn bình thường không ai sử dụng -exec echo {}
do đó có -print
(mặc định thậm chí bỏ qua) hoặc printf
hành động.
-printf
chỉ dành cho GNU. OP đề cập đến OS / X (hệ thống BSD).
-printf
%h
hàng đầu của tên tệp (tất cả trừ phần tử cuối cùng). Nếu tên tệp không chứa dấu gạch chéo (vì nó nằm trong thư mục hiện tại) thì trình xác định% h mở rộng thành "." .