Eliminare tutti i file i cui nomi di file contengono una stringa particolare?


22

Ho cambiato il mio tema wordpress. Il più vecchio ha creato così tante immagini sul server. Il mio nuovo tema non ne ha bisogno, quindi desidero rimuovere tutto. Come lo posso fare?

Ad esempio:
Immagine predefinita:12_angry_men_lone_holdout.jpg

Voglio cancellare:

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

Utilizzando Digitalocean, Ubuntu 13.10.


su un tipo di terminale man rmper vedere la pagina di manuale del comando rm.
hmayag,


Sembra che queste immagini siano le miniature create automaticamente dalle immagini caricate nella tua libreria multimediale WorldPress. In tal caso, non eliminare tali file nel terminale sul server. Apri la tua pagina di amministrazione di WordPress, apri "Impostazioni"> "Media". Imposta qui le dimensioni desiderate per l'immagine in miniatura. Quindi installare il plug-in Rigenerare le miniature e ricreare tutte le miniature (potrebbe richiedere alcuni minuti, a seconda della quantità di immagini nella libreria multimediale).
Bob,

Risposte:


22

Se si trovano nella stessa cartella, utilizzare il carattere jolly * per ottenere ciò:

rm *text*

Dov'è la textstringa che contiene il nome file.


In realtà non è una directory, ma posso farlo da una per ora. Grazie!
Ibrahim Mumcu,

27

Utilizzare findper trovare ed eliminare in modo ricorsivo i file con "testo" nei loro nomi:

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

Potresti anche voler eseguire find -type f -name '*text*'(senza -delete) prima di assicurarti di non eliminare alcun file che non intendevi eliminare.


In effetti, puoi posizionare i caratteri jolly in qualsiasi punto della stringa di ricerca, quindi -name '12_angry_men_lone_holdout-*.jpg'potrebbe essere più adatto nel tuo caso.


Non è necessario rappresentare il percorso del file
Avinash Raj,

@AvinashRaj Se il primo parametro non è un percorso, findcerca la directory di lavoro corrente.
n.

Qualcuno ha messo. subito dopo trova per la ricerca all'interno della directory di lavoro corrente.
Avinash Raj,

1
@AvinashRaj Sarebbe ridondante. Secondo man find: Se non viene fornito alcun percorso, viene utilizzata la directory corrente.
n.

@AvinashRaj Risulta l' POSIX specifica per findrealtà non richiede un percorso. L'impostazione predefinita .è una modifica aggiunta da GNU find. Se questo fosse Unix e Linux , lo aggiungerei alla mia risposta, ma poiché Ubuntu viene fornito con GNU find di default, preferirei non confondere i nuovi arrivati ​​più del necessario. ;)
n.

1

Prova questo:

rm -rf 12_angry_men_lone_holdout-*

Questa operazione keep 12_angry_men_lone_holdout.jpgrimuoverà i file con dimensioni (290x166)

E per favore ricorda

rm -rf 12_angry_men_lone_holdout.*

eliminerà anche il file predefinito, di cui avevi bisogno.


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

Esegui questo nella directory principale. Questo eliminerà tutti i file che hanno una cifra seguita da un carattere 'x' seguito da un'altra cifra nel loro nome.

Stai ancora attento, questo potrebbe eliminare anche i file originali, se il loro nome contiene il modello sopra (improbabile). Eseguilo prima senza '-delete' per vedere se hai dei file con un tale nome. In tal caso, dovrai solo trovare un modello più restrittivo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.