Giả sử tôi muốn xóa tất cả các tệp trong một thư mục lớn hơn 1 MB.
$ find . -size +1M | xargs -0 rm
Điều này sẽ không xóa các tập tin có không gian trong tên của họ. Vì vậy, tôi muốn nó trích dẫn tất cả các đối số mà nó gửi đến rm
. Nếu find
cung cấp cho nó Some report.docx
nó phải vượt qua "Some report.docx"
để rm
.
Làm thế nào tôi có thể làm điều đó?
xargs -d$'\n'
để giới hạn dấu phân cách chỉ các dòng mới (chứ không phải dấu cách; điều này sẽ không xử lý dấu ngoặc kép, v.v. đặc biệt - Tôi đã kiểm tra trên hệ thống GNU) - câu trả lời được đưa ra trong stackoverflow.com/a/33528111/94687
xargs
. Cũng như wiki cho thấy, không sử dụngxargs
mà không cần đi qua các-print0
đếnfind
.