Xóa tất cả các tệp có tên tệp chứa một chuỗi cụ thể?


22

Tôi đã thay đổi chủ đề wordpress của tôi. Cái cũ tạo ra rất nhiều hình ảnh trên máy chủ. Chủ đề mới của tôi không cần chúng, vì vậy tôi muốn xóa tất cả. Làm thế nào tôi có thể làm điều đó?

Ví dụ:
Hình ảnh mặc định:12_angry_men_lone_holdout.jpg

Tôi muốn xóa:

12_angry_men_lone_holdout-290x166.jpg
12_angry_men_lone_holdout-700x300.jpg 
12_angry_men_lone_holdout-50x50.jpg

Sử dụng Digitalocean, Ubuntu 13.10.


trên một loại thiết bị đầu cuối man rmđể xem trang thủ công của lệnh rm.
hmayag


Có vẻ như những hình ảnh này là hình thu nhỏ được tạo tự động từ hình ảnh được tải lên thư viện phương tiện WorldPress của bạn. Nếu vậy, sau đó không xóa các tệp trong thiết bị đầu cuối trên máy chủ. Mở trang quản trị WordPress của bạn, mở 'Cài đặt'> 'Phương tiện'. Đặt kích thước hình ảnh thu nhỏ mong muốn ở đó. Sau đó cài đặt plugin Tạo lại hình thu nhỏ và tạo lại tất cả các hình thu nhỏ (có thể mất vài phút, tùy thuộc vào số lượng hình ảnh trong thư viện phương tiện của bạn).
Bob

Câu trả lời:


22

Nếu chúng nằm trong cùng một thư mục, hãy sử dụng * ký tự đại diện để đạt được điều đó:

rm *text*

Trong trường hợp textchuỗi là tên tập tin chứa.


Trên thực tế bây giờ nó không phải là một thư mục nhưng tôi có thể làm điều đó. Cảm ơn bạn!
Ibrahim Mumcu

27

Sử dụng findđể tìm đệ quy và xóa các tệp có "văn bản" trong tên của chúng:

find -type f -name '*text*' -delete

Bạn cũng có thể muốn chạy find -type f -name '*text*'(không có -delete) trước đó để đảm bảo bạn sẽ không xóa bất kỳ tệp nào bạn không có ý định xóa.


Trong thực tế, bạn có thể đặt các ký tự đại diện ở bất cứ đâu trong chuỗi tìm kiếm, vì vậy -name '12_angry_men_lone_holdout-*.jpg'có thể phù hợp hơn trong trường hợp của bạn.


Có phải là không cần phải đại diện cho đường dẫn tệp
Avinash Raj

@AvinashRaj Nếu tham số đầu tiên không phải là đường dẫn, hãy findtìm kiếm thư mục làm việc hiện tại.
n.st

Ai đó đặt. ngay sau khi tìm kiếm trong thư mục làm việc hiện tại.
Avinash Raj

1
@AvinashRaj Điều đó sẽ là dư thừa. Theo man find: Nếu không có đường dẫn nào được đưa ra, thư mục hiện tại được sử dụng.
n.st

@AvinashRaj Hóa ra đặc tả POSIXfind thực sự không cần đường dẫn. Mặc định .là một sửa đổi được thêm bởi GNU find. Nếu đây là Unix & Linux , tôi sẽ thêm nó vào câu trả lời của mình, nhưng vì Ubuntu đi kèm với GNU được tìm thấy theo mặc định, tôi không nên nhầm lẫn những người mới đến hơn mức cần thiết. ;)
n.st

1

Thử đi:

rm -rf 12_angry_men_lone_holdout-*

Điều này sẽ keep 12_angry_men_lone_holdout.jpgvà loại bỏ các tệp có kích thước (290x166)

Và hãy nhớ

rm -rf 12_angry_men_lone_holdout.*

cũng sẽ xóa tập tin mặc định mà bạn cần.


0
find . -type f -name '*[0-9]x[0-9]*' -delete

Chạy này trong thư mục cha. Điều này sẽ xóa tất cả các tệp có một chữ số theo sau là một ký tự 'x' theo sau là một chữ số khác trong tên của chúng.

Hãy cẩn thận, điều này cũng có thể xóa các tệp gốc, nếu tên của chúng chứa mẫu ở trên (không chắc). Chạy nó trước mà không '-delete' để xem bạn có tập tin nào có tên như vậy không. Nếu đó là trường hợp, bạn sẽ chỉ cần tìm một mô hình hạn chế hơn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.