La capacità di modificare i nomi di file e directory è una delle abilità principali di cui ogni utente Linux ha bisogno. Questo articolo continua la serie di articoli di Bash e mostra come utilizzare vari modi come file manager, mv e rinomina utilità in combinazione con i costrutti di ricerca e ciclo bash. Migliora le tue abilità Linux in soli 3 minuti!
Sono disponibili due modi per farlo:
- Gestione file.
- Terminale della riga di comando.
Utilizzo del file manager
Uno dei modi più semplici per rinominare file e directory in Linux per i nuovi utenti è usare Midnight Commander.
Midnight Commander – è un file manager basato su console clonato dal famoso Norton Commander.
Per installare Midnight Commander sotto Ubuntu:
$ sudo apt-get update
$ sudo apt-get -y install mc
Per CentOS/Fedora/RHEL, usa un gestore di pacchetti diverso:
$ sudo yum -y install mc
Per avviare Midnight Commander, esegui mc comando.
È necessario utilizzare le frecce della tastiera per spostare il selettore di file. Per passare dalla schermata sinistra a quella destra, devi utilizzare la scheda chiave. Puoi usare anche il mouse, ma sei limitato a selezionare solo i file visibili sullo schermo.
Per rinominare il file o la directory, sposta il cursore sopra di esso e premi F6 . Se hai dimenticato la chiave esatta, usa il mouse per selezionare Sposta/Rinomina dal menu File.
Successivamente, diamo un'occhiata a come possiamo rinominare i file e le directory utilizzando mv e rinomina comandi.
comando "mv"
Il mv command ti aiuta a m ov e o rinominare i file e le directory dall'origine alla posizione di destinazione. La sintassi del comando è la seguente:
$ mv [OPTIONS] source destination
La fonte e destinazione può essere un file o una directory.
Per rinominare file1.txt in file2.txt utilizzando mv eseguire il seguente comando:
$ mv file1.txt file2.txt
Per modificare il nome della cartella1 directory nella cartella2 , usa il seguente comando:
$ mv folder1 folder2
Rinominare più file contemporaneamente
Il mv l'utilità può rinominare un solo file alla volta, ma puoi usarlo con altri comandi per rinominare più di un file. Questi comandi includono trova e Bash per e mentre loop.
Ad esempio, immaginiamo di dover modificare l'estensione del file per un tipo di file specifico in una directory. Nell'esempio seguente, rinominiamo tutti i file HTML e cambiamo la loro estensione da html in php .
Ecco l'esempio struttura delle cartelle:
$ tree example
example
├── index.html
├── page1.html
├── page2.html
└── page3.html
0 directories, 4 files
Ora, utilizziamo il seguente costrutto Bash for-loop all'interno dell'esempio directory:
$ cd example
$ for f in *.html; do
mv "$f" "${f%.html}.php"
done
Qui siamo entrati nell'esempio directory. Successivamente, abbiamo eseguito il mv comando in Bash for-loop (il comando tra for e fatto parole chiave).
Ecco cosa sta succedendo:
- Il ciclo for sta esaminando i file che terminano con .html e inserendo tutti i nomi di file nella variabile f .
- Quindi mv l'utilità cambia l'estensione di ogni file f da .html file in .php . Una parte dell'espressione ${f%.html} è responsabile della rimozione di .html dal nome del file. Un'espressione completa "${f%.html}.php" aggiungerà .php al nome del file senza .html parte.
Ecco il risultato atteso:
$ ls -l
total 0
-rw-r--r-- 1 amaksimov wheel 0 Dec 5 17:13 index.php
-rw-r--r-- 1 amaksimov wheel 0 Dec 5 17:13 page1.php
-rw-r--r-- 1 amaksimov wheel 0 Dec 5 17:13 page2.php
-rw-r--r-- 1 amaksimov wheel 0 Dec 5 17:13 page3.php
comando "trova"
Utilizzando trova L'utilità è uno dei modi più comuni per automatizzare le operazioni su file e directory in Linux.
Nell'esempio seguente, utilizziamo il trova per raggiungere lo stesso obiettivo e modificare l'estensione del file.
Il trovare l'utilità trova tutti i file che terminano con .html e utilizza il -exec argomento per passare ogni nome di file trovato allo script della shell sh scritto in una riga.
$ find . -depth -name "*.html" -exec sh -c 'f="{}"; mv "$f" "${f%.html}.php"' \;
Nella riga di script sh, impostiamo la variabile f con il valore del nome del file f="{}" , quindi eseguiamo il familiare mv comando. Un punto e virgola viene utilizzato per dividere il comando di set di variabili da mv comando.
comando "rinomina"
In alcuni casi, è più semplice utilizzare la rinomina comando invece di mv . E puoi usarlo con espressioni regolari senza combinarlo con altri comandi Linux.
Ecco la sintassi per rinominare comando:
$ rename [OPTIONS] regexp files
Ad esempio, rinominiamo tutto .php file di nuovo in .html :
$ ls
index.php page1.php page2.php page3.php
$ rename 's/.php/.html/' *.php
$ ls
index.html page1.html page2.html page3.html
Se desideri stampare i nomi dei file che hai selezionato per la ridenominazione, puoi utilizzare il seguente comando:
$ rename -n 's/.html/.php/' *.html
rename(index.html, index.php)
rename(page1.html, page1.php)
rename(page2.html, page2.php)
rename(page3.html, page3.php)
$ ls
index.html page1.html page2.html page3.html
Riepilogo
In questo articolo, hai imparato come modificare i nomi di file e directory in Linux in vari modi. Speriamo che questo articolo sia stato utile. Se è così, per favore, aiutaci a diffonderlo nel mondo.