L'altro giorno abbiamo imparato a cd e ls in un comando . Oggi vedremo un altro fantastico suggerimento Bash:cp o mv e cd in un comando. Significato:copieremo o sposteremo file/directory da una posizione all'altra e cd immediatamente nella directory di destinazione. Ovviamente possiamo farlo con un one-liner comando. Ad esempio, è possibile copiare o spostare file/directory in un'altra directory e cd nella directory di destinazione utilizzando il comando:
cp source destination && cd destination
Oppure,
mv source destination && cd destination
Tuttavia, non lo faremo ora. Usiamo una semplice funzione bash per combinare il comando cp o mv e il comando cd ed eseguirlo come un unico comando. Questo trucco dovrebbe funzionare su tutti i sistemi simili a Unix che supportano BASH.
Come eseguire cp o mv e cd in un comando
Apri il tuo ~/.bashrc file nel tuo editor preferito:
$ nano ~/.bashrc
Aggiungi le seguenti righe alla fine:
#cp and cd in one command
cpcd (){
if [ -d "$2" ];then
cp $1 $2 && cd $2
else
cp $1 $2
fi
}
#mv and cd in one command
mvcd (){
if [ -d "$2" ];then
mv $1 $2 && cd $2
else
mv $1 $2
fi
}
Salva e chiudi il file. Esegui il comando seguente per rendere effettive le modifiche.
$ source ~/.bashrc
Ora copia o sposta file/directory da una posizione all'altra e verrai automaticamente trasferito nella posizione di destinazione.
Facciamo alcune directory e file di esempio.
$ mkdir dir1 dir2
$ touch file1 file2
Ora copia il file1 in dir1 usando il comando:
$ cpcd file1 dir1
$ pwd /home/sk/dir1
Come vedi, il comando precedente copia il file1 in dir1 e poi automaticamente cd nella dir1 posizione.
Quindi sposta file2 in dir2 usando il comando:
$ cd
$ mvcd file2 dir2
$ pwd /home/sk/dir2
Questo comando copia file2 in dir2 e automaticamente cd nella dir2 posizione.
Risultato di esempio:
Spero che questo aiuti.
Altri suggerimenti Bash
- Rinomina i file senza digitare il nome completo due volte in Linux
- Una funzione Bash per estrarre archivi di file di vario tipo