2012-09-26 41 views
9

thể trùng lặp:
Command line: piping find results to rmTìm và xóa các tập tin trong .txt bash

thời gian gần đây frigged lên ổ cứng bên ngoài của tôi với hình ảnh của tôi trên nó (hầu hết xuất hiện trên DVD anyway, nhưng. .) bởi một số phân vùng friggery.

May mắn thay tôi đã có thể đưa mọi thứ trở lại cùng với PhotoRec tiện ích phân vùng Unix khác và PDisk.

PhotoRec trả về hơn một nghìn thư mục phấn đầy đủ mọi thứ từ tệp .txt đến quan trọng .NEF's. Vì vậy, tôi đã cố gắng để làm cho việc phân loại dễ dàng hơn bằng cách sử dụng unix kể từ khi Finder OSX chỉ đơn giản là sẽ sụp đổ theo yêu cầu như vậy là để chọn và xóa một tỷ .txt tập tin.

Nhưng tôi gặp phải một số BS khi tôi cố gắng tìm và xóa tệp txt, hoặc tìm và di chuyển tất cả jpeg đệ quy vào thư mục mới có tên là jpegs. Tôi là một unoo noob vì vậy tôi cần một số trợ giúp xin vui lòng.

Đây là những gì tôi đã làm trong bash. (Tôi đang ở trong thư mục mà ls sẽ liệt kê tất cả các thư mục và tập tin tôi cần phải hành động).

tìm. -name * .txt | rm

hoặc

sudo find. -name * .txt | rm -f

Vì vậy, nó cung cấp cho tôi một số BS mà tôi cần phải hủy liên kết các tệp. Bất cứ điều gì.

Tôi cần tìm tất cả các tệp .txt đệ quy và xóa chúng tốt nhất là tiết.

Cảm ơn.

+0

thêm tùy chọn -R để lệnh unix bạn. 'tìm. -name * .txt | rm -Rf' http://www.computerhope.com/unix/urm.htm – Sense

Trả lời

15

Bạn không thể đặt tên tệp đường ống thành rm. Bạn cần sử dụng xargs để thay thế. Ngoài ra, hãy nhớ trích dẫn mẫu tệp ".txt" hoặc vỏ sẽ mở rộng nó.

find . -name "*.txt" | xargs rm 
+0

Điều đó dường như đã xử lý các tệp .txt. Đối với một số lý do khi tôi đã làm nó trước khi có một số tập tin txt trái. Có lẽ tôi đã đến sớm khi thanh tiêu đề bash của tôi bị lật rm và mv qua lại. Dù sao mà đã chăm sóc nó nhờ. Tôi sẽ đảm bảo trích dẫn mẫu tệp (nó không nằm trong hướng dẫn Unix của Lynda OSX). – Propagator

+2

Điều đó có tiềm năng đi gag trên tên tập tin với không gian. Nếu combo find/xargs của họ xử lý nó, điều này sẽ tốt hơn: 'find. -name "* .txt" -print0 | xargs -0 rm' để tạo chuỗi kết thúc ASCII NUL. –

+0

Có thực sự. Trình tìm kiếm có thể tìm thấy không có tệp .txt. Tuyệt vời. – Propagator

13
find . -name "*.txt" -exec rm {} \; 
+0

Cái này khó nhớ hơn vì {} \; kinh doanh ở cuối –

+0

Điều này có thể đúng, nhưng một khi bạn đã nhớ cú pháp này, nó cho phép bạn thực hiện rất nhiều công cụ chung với bất kỳ lệnh 'find' nào trả về. – mana

5
$ find . -name "*.txt" -type f -delete 
Các vấn đề liên quan