Come utilizzare Bash per modificare l'estensione del file di più file in una cartella

Come utilizzare Bash per modificare l'estensione del file di più file in una cartella
Questo tutorial discuterà di un modo rapido di utilizzare Bash per rinominare i file da un'estensione specifica a un'altra. Useremo un ciclo bash, troviamo, rinomineremo e il comando MV per questo.

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'albero

Ora, eseguiamo la sceneggiatura.

estensioni $ chmod +x.sh
$ sudo ./estensioni

Lo 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 .Bak

Per 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 -y

Una volta installato, è possibile utilizzare il comando Rinomina come:

# Passa alla directory target
cd/var/log/
# Cambia l'estensione
sudo rinominare 's/\.tronco d'albero/.Bak/' *.tronco d'albero

Per ripristinare le modifiche, modificare il .Bak a .registro e viceversa.

$ sudo rinomina 's/\.bak/.tronco d'albero/' *.Bak

Metodo 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 mmv

Per rinominare i file con il comando MMV:

$ cd/var/log/
mmv "*.CSV ""#1.xls "

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!