Cách xóa tất cả trừ một trong các tệp trong thư mục

xóa các tệp Linux

Đôi khi bạn cần xóa gần như tất cả các tệp khỏi một thư mục, nhưng bạn muốn giữ một hoặc một số trong số chúng. Khi có một số lượng lớn trong số họ, đi từng người một là một nhiệm vụ tẻ nhạt. Đó không phải là lựa chọn tốt nhất, có nhiều cách để làm cho công việc trong Linux dễ dàng hơn nhiều và bạn có thể loại bỏ tất cả những thứ bạn cần cùng một lúc.

Ví dụ: bạn có thể chỉ muốn xóa những người bắt đầu bằng một tên nhất định hoặc những người có phần mở rộng cụ thể, v.v. Tất cả những gì có thểTrên thực tế, trong những dịp khác, tôi đã trình bày các hướng dẫn tương tự trong LxA. Ở đây bạn có thể làm theo hướng dẫn từng bước và theo cách đơn giản để có thể xóa tất cả các tệp bạn muốn, ngoại trừ những gì bạn muốn lưu.

Và điều tuyệt vời nhất là bạn sẽ không cần cài đặt bất kỳ chương trình nào, nó có thể được thực hiện dễ dàng với các lệnh như rm và find. Đó là các chương trình đã được cài đặt sẵn trên bất kỳ bản phân phối Linux nào. Và tất nhiên, phương pháp sẽ dựa trên việc tìm kiếm các mẫu và sử dụng các kết quả phù hợp đó để chỉ loại bỏ những gì bạn muốn.

Chà, để loại bỏ ở đó một số lựa chọn thay thế, Họ là ai…

Xóa tệp khỏi thư mục bằng rm

Vâng, để sử dụng lệnh rm Để loại bỏ những gì bạn cảm thấy thích, bạn phải biết trước một số cách để xác định các mẫu:

  • * (danh sách các mẫu) - phù hợp với không hoặc nhiều lần xuất hiện của các mẫu được chỉ định
  • ? (danh sách các mẫu) - khớp với không hoặc một lần xuất hiện của các mẫu được chỉ định
  • + (danh sách mẫu) - phù hợp với một hoặc nhiều lần xuất hiện của các mẫu được chỉ định
  • @ (danh sách mẫu) - khớp với một trong các mẫu được chỉ định
  • ! (danh sách mẫu) - phù hợp với bất kỳ thứ gì ngoại trừ một trong các mẫu đã cho

đến kích hoạt extglob Để sử dụng chúng, trước tiên bạn phải thực hiện lệnh sau:

<br data-mce-bogus="1">

shopt -s extglob<br data-mce-bogus="1">

con mắt! Tôi không chỉ định nó, nhưng giả định rằng bạn có quyền thực hiện các thao tác này và bạn đang ở bên trong thư mục đó khi thực hiện lệnh rm. Hãy cẩn thận với điều này, bởi vì nếu bạn chạy nó trong một đường dẫn khác, bạn có thể xóa các tệp mà bạn không muốn. Có nghĩa là, trước khi thực hiện các lệnh này, hãy đảm bảo rằng bạn đã nhập thư mục bạn muốn với cd.

Bây giờ bạn có thể sử dụng rm để xóa bất cứ thứ gì bạn muốn. Ví dụ, xóa tất cả các tệp khỏi một thư mục ngoại trừ những tệp phù hợp với tên «Lxa»:

rm -v !("lxa")

Bạn cũng có thể chỉ định hai hoặc nhiều tên mà bạn không muốn xóa. Ví dụ: để tránh xóa "lxa" và "desdelinux":

 rm -v !("lxa"|"desdelinux") 

Bạn có thể xóa tất cả các tệp, trừ những người có phần mở rộng .mp3. Ví dụ:

 rm -v !(*.mp3) 

Khi kết thúc, bạn có thể quay lại vô hiệu hóa extglob:

 shopt -u extglob 

Xóa tệp khỏi thư mục với tìm

Một thay thế khác cho rm là sử dụng tìm để loại bỏ bất cứ điều gì bạn thích. Bạn có thể sử dụng một đường ống và xargs với rm hoặc sử dụng tùy chọn -delete để tìm. Đó là, cú pháp chung sẽ là:

find /directory/ -type f -not -name 'PATRÓN' -delete
find /directory/ -type f -not -name 'PATRÓN' -print0 | xargs -0 -I {} rm [opciones] {}

Ví dụ, hãy tưởng tượng bạn muốn xóa tất cả các tệp trong một thư mục ngoại trừ những tệp có phần mở rộng .jpg, bạn có thể sử dụng một trong hai lệnh này, vì cả hai đều nhận được cùng một kết quả:

find . -type f -not -name '*.jpg'-delete

find . -type f -not -name '*.jpg' -print0 | xargs -0 -I {} rm -v {}

Thay vào đó, nếu bạn muốn thêm một số mẫu bổ sung, bạn cũng có thể. Ví dụ: giả sử bạn không muốn xóa .pdf hoặc .odt khỏi thư mục:

find . -type f -not \(-name '*pdf' -or -name '*odt' \) -delete

Tất nhiên, bạn có thể làm tương tự với | và xargs như trong ví dụ trước. Nhân tiện, chúng tôi đã sử dụng -không phủ nhận, nhưng bạn có thể loại bỏ điều đó để làm cho nó tích cực, nghĩa là loại bỏ các mẫu phù hợp và không loại trừ chúng.

Xóa tệp khỏi thư mục bằng biến GLOBIGNORE

Cuối cùng, có Một thay thế khác để tìm và rm, và nó sử dụng một biến môi trường để trỏ đến các tệp bạn muốn xóa hoặc loại trừ. Ví dụ: hãy tưởng tượng bạn muốn xóa tất cả các tệp trong thư mục có tên là Tải xuống, lưu các tệp .pdf, .mp3 và .mp4. Trong trường hợp đó, bạn có thể làm như sau:

cd Descargas
GLOBIGNORE=*.pdf:*.mp4:.*mp3
rm -v *
unset GLOBIGNORE


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: AB Internet Networks 2008 SL
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.