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 {} \;
~/docsnametùy chọn sẽ phù hợp với tất cả txtcác file - execsẽ thực hiện lệnh touchvào tên tập tin, mà được thay thế trong{}\;kết thúc lệnh và touchsẽ đượ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 touchtrê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 touchvà 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 ...touchcó 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ẽtouchchỉ 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 findtài liệu.