Tôi muốn xóa các tệp lớn hơn 2MB trong một thư mục cụ thể. Thế là tôi chạy:
find . -size +2M
Và tôi có một danh sách gồm hai tập tin
./a/b/c/file1
./a/f/g/file2
Thế là tôi chạy:
find . -size +2M -exec rm ;
và tôi nhận được thông báo lỗi Find: missing argument to -exec
Tôi kiểm tra cú pháp trong trang man và nó nói -exec command ;
Vì vậy, thay vì tôi cố gắng
find . -size +2M -exec rm {} +
Và nó hoạt động. Tôi hiểu rằng {} làm cho nó thực thi lệnh như thế rm file1 file2
thay vì rm file1; rm file2;
.
Vậy tại sao cái đầu tiên không hoạt động?
CÂU TRẢ LỜI:
Tôi đoán rằng tôi chỉ cần RTFM một vài lần để cuối cùng hiểu những gì nó nói. Mặc dù ví dụ đầu tiên không hiển thị {}, tất cả các trường hợp niềng răng được yêu cầu. Và sau đó thêm \; hoặc + tùy thuộc vào phương pháp mong muốn. Đừng chỉ đọc tiêu đề. Đọc mô tả là tốt. Hiểu rồi.