Cách dễ nhất/tốt nhất để tìm và xóa tệp rỗng (zero-byte) chỉ sử dụng các công cụ có nguồn gốc từ Mac OS X là gì?Xóa các tệp rỗng (zero-byte)
Trả lời
Dễ dàng đủ:
find . -type f -size 0 -exec rm -f '{}' +
Để bỏ qua bất kỳ tập tin có nội dung xattr (giả sử việc thực hiện hệ điều hành MacOS find
):
find . -type f -size 0 '!' -xattr -exec rm -f '{}' +
Điều đó nói rằng, lưu ý rằng nhiều xattrs không đặc biệt hữu ích (ví dụ: com.apple.quarantine
tồn tại trên tất cả các tệp đã tải xuống).
find /path/to/stuff -empty
Nếu đó là danh sách các tập tin mà bạn đang tìm kiếm sau đó làm cho các lệnh:
find /path/to/stuff -empty -exec rm {} \;
Hãy cẩn thận! Sẽ không có cách nào để hoàn tác việc này!
Tốt hơn để sử dụng + hơn; nếu bạn có một tìm kiếm hiện tại - theo cách đó, nó hoạt động theo cách xargs nếu nó ở trong đường ống. –
Sử dụng:
find . -type f -size 0b -exec rm {} ';'
với tất cả các biến thể khác để giới hạn những gì bị xóa.
Bạn có thể làm giảm số lượng có tiềm năng rất lớn của các dĩa để chạy/bin/rm bởi:
find . -type f -size 0 -print0 | xargs -0 /bin/rm -f
Lệnh trên là rất di động, chạy trên hầu hết các phiên bản của Unix thay vì chỉ hộp Linux, và trên các phiên bản của Unix sẽ trở lại trong nhiều thập kỷ. Đối với các danh sách tệp dài, một số lệnh /bin/rm
có thể được thực hiện để giữ cho danh sách không vượt quá giới hạn độ dài dòng lệnh.
Một hiệu ứng tương tự có thể đạt được với ít gõ trên hệ điều hành gần đây hơn, sử dụng một +
trong find
để thay thế việc sử dụng phổ biến nhất của xargs
trong một phong cách vẫn vay chính nó để hành động khác ngoài /bin/rm
. Trong trường hợp này, find
sẽ xử lý tách danh sách tệp thật dài thành các lệnh riêng biệt /bin/rm
. Các {}
là thường được trích dẫn để giữ cho vỏ làm bất cứ điều gì với nó; có dấu ngoặc kép không phải luôn luôn cần thiết nhưng những phức tạp của vỏ trích dẫn quá tham gia để trang trải ở đây, vì vậy khi nghi ngờ, bao gồm các dấu nháy:
find . -type f -size 0 -exec /bin/rm -f '{}' +
Trong Linux, các cách tiếp cận ngắn hơn thường có sẵn sử dụng -delete
. Lưu ý rằng -delete
chính của find
mới được triển khai trực tiếp với unlink
(2) và không sinh ra lệnh zillion /bin/rm
hoặc thậm chí một số lệnh xargs
và +
làm. Mac OS find
cũng có -delete
và -empty
bầu cử sơ bộ.
find . -type f -empty -delete
Để dậm rỗng (và mới làm trống) các tập tin - thư mục cũng - nhiều host Linux hiện đại có thể sử dụng phương pháp hiệu quả này:
find . -empty -delete
+1 Đây là câu trả lời hay hơn. –
Điều này _does_ cải thiện tính di động, được cấp - nhưng 'find -exec ... {} +' chỉ có sẵn ngoài Linux. Ngay lập tức, cả Solaris 11 và OS X hỗ trợ bổ sung gần đây này cho đặc tả POSIX để tìm (được thêm vào trong số 6 của 1003.1). –
Cú pháp '+' ít di động hơn, nhưng vẫn khá cầm tay. Nó chắc chắn không có sẵn trên một số * cũ * Unixen mà * làm * có 'xargs'. 'xargs' cũng linh hoạt hơn nhiều so với' + ', mặc dù tần số cần thêm flex thực sự thấp. Tuy nhiên, tôi sẽ thêm biểu mẫu '+'. –
- 1. JSON serialization - xóa các khóa rỗng
- 2. Sqlite: cách xóa các hàng có chứa các chuỗi rỗng/rỗng
- 3. Xóa các phần tử rỗng khỏi Vector chuỗi
- 4. Ghi vào một tệp bằng Python chèn các byte rỗng
- 5. Xóa các dòng trống từ một tệp
- 6. C# Regex.Split: Xóa kết quả rỗng
- 7. xóa các tệp phụ thuộc
- 8. Python - xóa các tệp cũ
- 9. Làm cách nào để xóa các yếu tố rỗng khỏi các khía cạnh ggplot2?
- 10. PHP đệ quy xóa các thư mục rỗng với các trình lặp SPL
- 11. Xóa các tệp đã xóa khỏi lịch sử git
- 12. Ngăn chặn Proguard xóa bỏ hàm tạo rỗng của đoạn
- 13. Bash: đệ quy xóa các tệp
- 14. Xóa các tệp được tạo bằng FileOutputStream
- 15. Git bỏ qua các tệp đã xóa
- 16. xóa các tệp sao lưu cũ
- 17. Xóa các tệp bị ẩn đệ quy
- 18. xóa một chuỗi rỗng khỏi mảng chuỗi - JQuery
- 19. Xóa hoặc ẩn một div nếu nó trống rỗng
- 20. GetHashCode trên các trường rỗng?
- 21. temp.readline() rỗng?
- 22. Oracle không phân biệt giữa các giá trị rỗng và các chuỗi rỗng?
- 23. Xóa tệp trong C
- 24. Xóa tệp hoặc lưu trữ tệp?
- 25. NERDTree - cách xóa tệp
- 26. Xóa tệp máy chủ
- 27. xóa tệp đính kèm
- 28. Tại sao các tệp và chuỗi có vẻ trống rỗng sản xuất md5sums?
- 29. Log4net không thể ghi, chỉ tạo các tệp rỗng, nhưng không ghi nhật ký thực tế
- 30. Cách kiểm tra xem tệp có rỗng trong Bash không?
xin vui lòng làm rõ! một tệp rỗng, tất cả các tệp trống? bạn đã thử cái gì, lỗi ở đâu? – hop
Nhận xét cho câu trả lời của tôi đã làm sáng tỏ câu hỏi; cập nhật một cách thích hợp. –
Cảm ơn bạn Charles Duffy. Xin lỗi vì tiếng Anh xấu của tôi: p – Bank