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