Bạn có thể làm một cái gì đó như dưới đây là tốt.
find path_A -name "*AAA*" -print0 | xargs -0 -I {} mv {} path_B
Ở đâu,
-0Nếu có khoảng trắng hoặc ký tự (bao gồm cả dòng mới), nhiều lệnh sẽ không hoạt động. Tùy chọn này quan tâm đến tên tệp với không gian trống.
-IThay thế các lần xuất hiện của str-str trong các đối số ban đầu bằng các tên được đọc từ đầu vào tiêu chuẩn. Ngoài ra, khoảng trống không trích dẫn không chấm dứt các mục đầu vào; thay vào đó dấu phân cách là ký tự dòng mới.
Kiểm tra
Tôi đã tạo hai thư mục là sourcedirvà destdir. Bây giờ, tôi đã tạo ra một loạt các tập tin bên trong sourcedirnhư file1.bak, file2.bakvàfile3 with spaces.bak
Bây giờ, tôi đã thực thi lệnh như,
find . -name "*.bak" -print0 | xargs -0 -I {} mv {} /destdir/
Bây giờ, bên trong destdir, khi tôi làm ls, tôi có thể thấy rằng các tệp đã được chuyển từ sourcedirsang destdir.
Người giới thiệu
http://www.cyberciti.biz/faq/linux-unix-bsd-xargs-construct-argument-lists-utility/