Bất cứ ai có thể cho tôi một tập lệnh bash hoặc một dòng lệnh tôi có thể chạy trên Linux để đệ quy đi qua từng thư mục từ thư mục hiện tại và xóa tất cả các tệp hoặc thư mục bắt đầu bằng '._ '?Bash script để đệ quy bước qua các thư mục và xóa các tập tin
Trả lời
Thay đổi thư mục vào thư mục gốc bạn muốn (hoặc thay đổi .
vào thư mục) và thực hiện:
find . -name "._*" -print0 | xargs -0 rm -rf
xargs
cho phép bạn vượt qua một vài thông số cho một lệnh duy nhất, do đó nó sẽ nhanh hơn so với sử dụng cú pháp find -exec
. Ngoài ra, bạn có thể chạy điều này một lần mà không cần |
để xem các tệp mà nó sẽ xóa, đảm bảo tệp đó an toàn.
Điều này sẽ bị nhầm lẫn bởi tên tập tin với không gian, đó là phổ biến nếu bạn đang đối phó với các tập tin từ một môi trường Mac. Sử dụng các tùy chọn null-delimiter để 'find' và' xargs' ('find. -name" ._ * "-print0 | xargs -0 rm -rf') để tránh vấn đề này. –
Vâng ... định dạng exec an toàn hơn và dễ dàng hơn nhiều. –
@Gordon, cảm ơn, tôi đã cập nhật giải pháp của mình. –
Tôi đã gặp sự cố tương tự một thời gian trước (tôi cho rằng bạn đang cố gắng dọn sạch ổ đĩa được kết nối với máy Mac lưu nhiều tệp này), vì vậy tôi đã viết một tập lệnh python đơn giản xóa chúng và các tệp vô dụng khác; có lẽ nó sẽ hữu ích cho bạn: ngắn
Yep, u giả định chính xác. Được cho là một cái gì đó táo của nó đang tìm cách để sửa chữa để làm cho máy Mac hơn 'mạng thân thiện'. – link664
find /path -name "._*" -exec rm -fr "{}" +;
find . -name '.*' -delete
Một chút và thực hiện tốt hơn trong trường hợp cực kỳ danh sách dài các tập tin.
Noooooooo! '. *' sẽ xóa tất cả các tệp dấu chấm của bạn và bạn cần chúng !!! Đừng làm những người này. Đó là một ý tưởng tồi. – daviewales
Thay vì xóa các tệp AppleDouble, bạn có thể hợp nhất chúng với các tệp tương ứng. Bạn có thể sử dụng dot_clean
.
dot_clean - Hợp nhất ._ * tệp với các tệp gốc tương ứng.
Đối với mỗi thư mục, dot_clean đệ quy hợp nhất tất cả các tệp ._ * với các tệp gốc tương ứng của chúng theo các quy tắc được chỉ định với các đối số đã cho. Theo mặc định, nếu có thuộc tính trên tệp gốc cũng có trong tệp ._, thuộc tính mới nhất sẽ được sử dụng.
Nếu không có toán hạng nào được cung cấp, thông báo sử dụng là đầu ra. Nếu có nhiều hơn một thư mục được đưa ra, các thư mục được hợp nhất theo thứ tự mà chúng được chỉ định.
Vì dot_clean trình đệ quy theo mặc định, sử dụng:
dot_clean <directory>
Nếu bạn muốn tắt đệ quy sáp nhập, sử dụng -f
cho merge phẳng.
dot_clean -f <directory>
- 1. Bash: đệ quy xóa các tệp
- 2. Xóa đệ quy các tệp và thư mục trong C#
- 3. Tạo tập tin và thư mục đệ quy
- 4. Tìm và xóa các tập tin trong .txt bash
- 5. Diff Một thư mục đệ quy, bỏ qua tất cả các tập tin nhị phân:
- 6. Xóa các thư mục và chứa các tập tin
- 7. Đệ quy xóa các tập tin từ một thư mục nhưng giữ cấu trúc thư mục còn nguyên vẹn
- 8. Tìm kiếm tập tin trong thư mục đệ quy
- 9. tạo tập tin, đệ quy tạo thư mục
- 10. Dòng lệnh để xóa các tệp và thư mục phù hợp đệ quy
- 11. Bash scripting, lặp qua tập tin trong thư mục không
- 12. BASH: chương trình đệ quy để thay thế văn bản trong một cây các tập tin
- 13. Làm cách nào để tìm tập tin đệ quy trong các thư mục
- 14. Làm thế nào để đệ quy xóa một thư mục với các tập tin trong bằng cách sử dụng FtpWebRequest?
- 15. Bash Script: đếm các dòng duy nhất trong tập tin
- 16. bash ~ để lặp qua các tập tin cụ thể trong một thư mục
- 17. PHP đệ quy xóa các thư mục rỗng với các trình lặp SPL
- 18. Đệ quy đổi tên thư mục trong bash
- 19. bao gồm các tập tin đệ quy trong Cocoapods podspec
- 20. Có một lệnh trình bao để đệ quy cho phép các thư mục và tệp không?
- 21. thư mục và thư mục con xcopy đệ quy và lọc chỉ tên tập tin bằng cách mở rộng
- 22. Mẫu đầu bếp có các thư mục đệ quy
- 23. Đệ quy đọc thư mục và thực hiện lệnh trên mỗi thư mục
- 24. Xóa tất cả các tập tin trong một thư mục
- 25. Xóa các tệp bị ẩn đệ quy
- 26. Lặp qua các tập tin trong một thư mục
- 27. bash lặp qua tất cả tìm đệ quy trong thư mục con
- 28. Làm thế nào để loại bỏ thư mục đệ quy?
- 29. Làm thế nào để đệ quy đi qua tất cả các thư mục con và đọc tệp?
- 30. Có CMake đệ quy quét các thư mục không?
Chỉ cần thông tin: tệp '._' được gọi là tệp AppleDouble. Trên các hệ thống Mac, các tệp có một ngã ba dữ liệu và một ngã ba tài nguyên. Fork tài nguyên thường chứa thông tin như biểu tượng, vị trí không gian của tệp trong thư mục (trong Trình tìm kiếm) và siêu dữ liệu khác. Dĩa dữ liệu (tệp thực tế) chứa dữ liệu quan trọng thực tế, vì vậy việc loại bỏ tệp AppleDouble không phải là vấn đề. – dreamlax