Tôi đọc ở đây mà bạn có thể đếm số lượng các lời gọi của command
trong -exec command {} +
của đường ống | wc -l
để kết thúc của nó.
Mặc dù tôi hiểu điều đó -execdir
là khác nhau, nhưng ở mỗi thư mục con phù hợp find
phát hiện ra, nó sẽ chạy một lệnh gọi command
từ thư mục con chứa trong đó, nếu tôi có nhiều hơn một tệp khớp với thư mục con, thì không nên Tôi kết thúc với số lượng các yêu cầu bằng với số lượng thư mục con phù hợp, và không phải là số lượng các lệnh được khớp với số lượng tệp phù hợp trong các thư mục con đó?
Tôi sẽ kết thúc với cái sau khi tôi chạy như sau:
$ find . -name "bob*" -execdir echo {} + | wc -l
Trang người đàn ông cho các execdir command {} +
trạng thái trước đây nên là trường hợp:
Như với
-exec
hành động,+
hình thức-execdir
sẽ xây dựng một dòng lệnh để xử lý nhiều hơn một tệp phù hợp, nhưng bất kỳ lệnh gọi nàocommand
sẽ chỉ liệt kê các tệp tồn tại trong cùng thư mục con.
I E
Tôi nhận được:
./file1inDir1
./file2inDir1
./file3InDir2
./file4InDir3
Khi tôi mong đợi điều này, dựa trên trang người đàn ông:
./file1inDir1 ./file2inDir1
./file3InDir2
./file4InDir3
echo
và các đối số được tạo bởi{} +
và bạn không có dòng mới trong tên tệp của mình (hầu hết mọi người không) THÌ số lượng dòng là số lần gọi và nó hoạt động. Nếu lệnh được nóihead -n 999000 /dev/urandom
nó đi sai lầm khủng khiếp.