Trong thư mục ~ / docs của tôi, tôi muốn "chạm" vào tất cả các tệp kết thúc bằng .txt
Tôi có thể làm cái này như thế nào?
Trong thư mục ~ / docs của tôi, tôi muốn "chạm" vào tất cả các tệp kết thúc bằng .txt
Tôi có thể làm cái này như thế nào?
Câu trả lời:
Với find
:
find ~/docs -name "*.txt" -exec touch {} \;
~/docs
name
tùy chọn sẽ phù hợp với tất cả txt
các file - exec
sẽ thực hiện lệnh touch
vào tên tập tin, mà được thay thế trong{}
\;
kết thúc lệnh và touch
sẽ được gọi một lần cho mỗi tệp được tìm thấyGhi chú:
\+
ở cuối xây dựng một lệnh duy nhất để chạy touch
trên tất cả các tệp này cùng một lúc. Điều này là không thể với tất cả các lệnh, nhưng nó hoạt động touch
và tiết kiệm cho bạn một vài cuộc gọi nếu bạn có nhiều tệp bị ảnh hưởng.
{} \+
sẽ tốt hơn ở đây ...touch
có thể xử lý nhiều tên tệp trên dòng lệnh của nó, vì vậy, ví dụ, với 10 nghìn tệp và{} \;
10 nghìn cuộc gọi sẽ được thực hiện đểtouch
... Sử dụng{} \+
sẽtouch
chỉ gọi một lần (tùy thuộc vào bộ nhớ khả dụng) ... Tại đây là một đoạn trích từ trang man của find :-exec command {} + ... The command line is built in much the same way that xargs builds its command lines
. Có nhiều chi tiết hơn trongman find
tài liệu.