2013-04-03 28 views
8

Có một thư mục có tên X nằm trong một số thư mục con của thư mục gốc Y. Tôi muốn xóa tất cả các thư mục có tên X hiện diện trong Y và tất cả đó là thư mục con. Tôi muốn thực hiện việc này bằng cách sử dụng osx Terminal.Cách xóa tất cả các thư mục có tên đăng nhập X trong thư mục bằng thiết bị đầu cuối osx

Thư mục có thể được đặt ở bất cứ nơi nào hạ lưu của Y ở mọi cấp độ, vì vậy tôi muốn sử dụng một cách tiếp cận có hệ thống hơn chỉ sử dụng rm -r cho mọi vị trí tôi tìm thấy.

Trả lời

13

"cd" để thư mục gốc của thư mục Y

sau đó (giả sử tên thư mục là "X", gõ vào):

"find . -name X -exec rm -rf {} \;" (và được vô cùng cẩn thận về nơi bạn bắt đầu này "find "từ ... bạn chỉ muốn làm điều này trong thư mục Y của bạn).

Tôi thực hiện loại điều này mọi lúc để xóa các thư mục kho lưu trữ cũ/busted (như ".svn"), mà tôi nghi ngờ là những gì bạn cũng có thể đang làm.

Và bây giờ có lẽ sẽ là thời điểm thông minh để tôi nhắc bạn rằng "Time Machine" là một điều tuyệt vời để bật trên Macintosh của bạn.

+0

+1 siêu nhanh bạn đã nhập tất cả những người đó chỉ dưới 1 phút –

+0

bạn thường nhanh hơn tôi, @Anoop; và tôi thực hiện loại "tìm/rm" mọi lúc, nhưng như tôi đã nói nó cực kỳ nguy hiểm nếu không có Time Machine được kích hoạt. –

+0

Tôi đang thực sự sử dụng điều này trong một dự án nghiên cứu. Tôi có một bộ dữ liệu MRI lớn bao gồm khối lượng 2D và 3d được đặt trên một ổ cứng gắn ngoài. Tôi chỉ cần trích xuất một tập hợp dữ liệu/thư mục con nhất định. Những gì tôi muốn làm là xóa tất cả các thư mục ngoại trừ thư mục đích của tôi. – Oliver