2015-05-27 12 views
15

Tôi hiểu rằng tôi có thể sử dụng find . -name ".DS_STORE" đến find all the .DS_STORE files trong thư mục hiện tại và tất cả các thư mục con. Nhưng làm thế nào tôi có thể xóa chúng khỏi dòng lệnh cùng một lúc? Tôi thấy nó thực sự gây phiền nhiễu để chuyển đổi qua lại cho tất cả các thư mục và xóa từng cái một.Xóa các tệp .DS_STORE trong thư mục hiện tại và tất cả các thư mục con từ dòng lệnh trên máy Mac

Cảm ơn lời khuyên nào.

+0

Xem nhận xét của tôi về câu trả lời chấp nhận. –

Trả lời

40

find có thể làm điều đó. Chỉ cần thêm -delete:

find . -name ".DS_Store" -delete 
+0

Bạn cần sửa trường hợp tên tệp thành ** ". DS_Store" **, nếu được sử dụng ". DS_STORE", nó sẽ không hoạt động như tên tệp có phân biệt chữ hoa chữ thường. –

+0

@AmrLotfy Điều đó không thực sự đúng, hệ thống tập tin mac mặc định là trường hợp không nhạy cảm – Others

+1

Để thận trọng hơn, tôi thường loại trừ các thư mục như thế này: 'tìm. -name '.DS_Store' -type f -delete' – xApple

0

Bạn cũng có thể sử dụng mở rộng globbing (**):

rm -v **/.DS_Store 

trong zsh, bash 4 và vỏ tương tự (nếu không được kích hoạt, kích hoạt bằng cách: shopt -s globstar).

0

Tạo tệp mới bằng trình chỉnh sửa văn bản, sao chép và dán văn bản sau vào đó và lưu nó bằng đuôi ".sh", sau đó mở tệp bằng Thiết bị đầu cuối. Đảm bảo rằng trình chỉnh sửa văn bản thực sự đang lưu văn bản thô và không lưu tệp dưới dạng tệp Định dạng văn bản đa dạng thức hoặc một số định dạng tệp văn bản khác có thông tin bổ sung trong tệp.

#!/bin/bash 
echo -e "\nDrag a folder here and press the Enter or Return keys to delete all files whose names begin with a dot in its subfolders:\n" 
read -p "" FOLDER 
echo -e "\nThe following files will be deleted:\n" 
find $FOLDER -name ".*" 
echo -e "\nDelete these files? (y/n): " 
read -p "" DECISION 
while true 
do 
    case $DECISION in 
     [yY]*) find $FOLDER -name ".*" -delete 
     echo -e "\nThe files were deleted.\n" 
     break;; 
     [nN]*) echo -e "\nAborting without file deletion.\n" 
     exit;; 
     *) echo -e "\nAborting without file deletion.\n" 
     exit;; 
    esac 
done 
5
find . -name ".DS_Store" -print -delete 
+0

Trong khi liên kết này có thể trả lời câu hỏi, tốt hơn nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở thành không hợp lệ nếu trang được liên kết thay đổi. - [Từ đánh giá] (/ đánh giá/bài đăng chất lượng thấp/17012288) – kelin

+0

@kelin uh, đây là câu trả lời chỉ liên kết khi không có liên kết? – ppperry

+0

@ppperry, đây là thư tự động từ bài đánh giá. Tôi đã bỏ phiếu để xóa bạn trả lời, bởi vì nó không thêm bất cứ điều gì quan trọng so với một chấp nhận. – kelin

Các vấn đề liên quan