Trova terminale, rinomina per eliminazione

1

Mac aggiungerà un '2' (nota lo spazio) alla fine di un file / cartella che è una copia di un altro file / cartella all'interno della stessa directory ... Mi stavo chiedendo se qualcuno sa come rimuovere i batch / rinomina questo '2' da una directory di cartelle da Terminale.

    
posta Ken McLeod 03.06.2015 - 02:39
fonte

2 risposte

3

Utilizza find per individuare i file in questo modo:

find . -name "* 2" -exec rm -r "{}" \;

Questo comando cercherà file e cartelle da dove sei . con nome "* 2" ed elimina ogni risultato -exec rm {} .

Se vuoi rinominare le directory:

find . -name "* 2" -type d -exec rename 's/ 2/-copy/g' {} \;

Come altro comando, individua solo le cartelle con nome "*.2" e rinomina sostituendo 2 con -copy .

Se non hai installato rename , puoi anche usare

find . -name "* 2" -type d -exec bash -c '[[ -x "${0/ 2/-copy}" ]] || mv "$0" "${0/ 2/-copy}"' {} \;

(La parte [[ -x verifica se esiste già un file / cartella).

    
risposta data 03.06.2015 - 06:46
fonte
0

Bene, nel caso in cui qualcun altro si presenti con la stessa domanda ... Ho trovato una soluzione semplice ... se hai un Homebrew

brew install rename

...

rename -s " 2" '' *

trasforma Music / Tom Petty 2 in Music / Tom Petty. Allo stesso modo, se volessi aggiungere qualcosa ai tuoi nomi di directory con un finale simile come "2", potresti ...

rename -s " 2" '-blob' *

... Music/Tom Petty 2/

diventa

Music/Tom Petty-blob/
    
risposta data 03.06.2015 - 16:17
fonte

Leggi altre domande sui tag