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,
-0
Nế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.
-I
Thay 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à sourcedir
và destdir
. Bây giờ, tôi đã tạo ra một loạt các tập tin bên trong sourcedir
như file1.bak
, file2.bak
và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ừ sourcedir
sang destdir
.
Người giới thiệu
http://www.cyberciti.biz/faq/linux-unix-bsd-xargs-construct-argument-lists-utility/