Metodo 1: Bash Loop
Il modo più comune per modificare le estensioni dei file in modo ricorsivo in una directory è utilizzare un bash per loop. Possiamo chiedere all'utente di inserire la directory di destinazione, la vecchia estensione e la nuova estensione per rinominare utilizzando uno script bash.
Passaggio 1: assemblare lo script
Cominciamo a assemblare la sceneggiatura. La prima parte di cui abbiamo bisogno è ottenere la directory target. Per questo, possiamo leggere come:
#!/Bin/Bash
Echo "Inserisci la directory target"
Leggi Target_dir
CD $ target_dir
Echo "Immettere l'estensione del file per cercare senza punto"
Leggi old_ext
Echo "Immettere la nuova estensione del file per rinominare senza punto"
Leggi new_ext
echo "$ target_dir, $ old_ext, $ new_ext"
Lo script sopra chiederà all'utente la directory di elaborare e quindi CD nella directory set.
Successivamente, otteniamo la vecchia estensione senza il punto (.); Infine, otteniamo la nuova estensione per rinominare i file.
Ora andiamo a elaborare i file. Per questo; Possiamo implementare una semplice regola che cerca ricorsivamente i file come:
per file in *.$ old_ext
Fare
mv -v "$ file" "$ file%.$ old_ext.$ new_ext "
Fatto;
Il loop sopra cercherà la directory passata per tutti i file con la vecchia estensione e li rinominerà alla nuova estensione.
Per ottenere verbose, utilizziamo il comando MV con -v. Puoi sopprimere questo output sostituendo il flag -v -
Passaggio 2: eseguire lo script
Ora, mettiamo la sceneggiatura al test. Lo script finale è sotto:
#!/Bin/Bash
Echo "Inserisci la directory target"
Leggi Target_dir
CD $ target_dir
Echo "Immettere l'estensione del file per cercare senza punto"
Leggi old_ext
Echo "Immettere la nuova estensione del file per rinominare senza punto"
Leggi new_ext
echo "$ target_dir, $ old_ext, $ new_ext"
per file in *.$ old_ext
Fare
mv -v "$ file" "$ file%.$ old_ext.$ new_ext "
Fatto;
In questo test, useremo la directory /var /log e rinomineremo tutto il .Registra i file a .Bak. Ecco il contenuto della directory prima di eseguire lo script.
$ ls l/var/log/| grep .tronco d'alberoOra, eseguiamo la sceneggiatura.
estensioni $ chmod +x.shLo screenshot sopra mostra lo script che elabora i file e la ridenominazione di tutti i file con .registro a .Bak.
Dal momento che questo è uno script interattivo, è utile quando non si desidera codificare l'estensione.
Di seguito è riportato il contenuto della directory /var /log dopo lo script.
$ ls -l/var/log/| grep .BakPer ripristinare le modifiche, passare la vecchia estensione a .Bak e la nuova estensione come .tronco d'albero
Metodo 2: rinominare il comando
Se non hai voglia di lavorare con uno script, è possibile utilizzare lo strumento Rinomina per modificare le estensioni dei file in modo ricorsivo.
Per installare rinominare, utilizzare il comando:
$ sudo apt -get install romina -yUna volta installato, è possibile utilizzare il comando Rinomina come:
# Passa alla directory targetPer ripristinare le modifiche, modificare il .Bak a .registro e viceversa.
$ sudo rinomina 's/\.bak/.tronco d'albero/' *.BakMetodo 3: comando MMV
È inoltre possibile utilizzare il comando MMV che consente di spostare più file contemporaneamente. Installa MMV con il comando:
$ sudo apt-get install mmvPer rinominare i file con il comando MMV:
$ cd/var/log/Il n. 1 sposta i file nella directory corrente. Una volta eseguito il comando, rinominerà tutto .Registra i file all'estensione specificata.
Riassumendo
Questo articolo ha discusso di vari metodi È possibile rinominare ricorsivamente le estensioni dei file in una directory specifica. Tuttavia, è bene notare che è possibile implementare strategie diverse da quelle discusse in questa guida.
Grazie per aver letto e ricordati di condividere!