El otro día aprendimos a cd y ls en un solo comando . Hoy veremos otro consejo genial de Bash:cp
o mv
y cd
en un solo comando. Significado:vamos a copiar o mover archivos/directorios de una ubicación a otra y cd
en el directorio de destino al instante. Por supuesto que podemos hacer esto con un one-liner dominio. Por ejemplo, es posible copiar o mover archivos/directorios a otro directorio y cd en el directorio de destino usando el comando:
cp source destination && cd destination
O,
mv source destination && cd destination
Sin embargo, no lo vamos a hacer ahora. Usamos una función bash simple para combinar el comando cp o mv y el comando cd y ejecutarlo como un solo comando. Este truco debería funcionar en todos los sistemas tipo Unix que admitan BASH.
Cómo cp o mv y cd en un solo comando
Abre tu ~/.bashrc
archivo en su editor favorito:
$ nano ~/.bashrc
Agregue las siguientes líneas al final:
#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 }
Guarde y cierre el archivo. Ejecute el siguiente comando para aplicar los cambios.
$ source ~/.bashrc
Ahora copie o mueva archivos/directorios de una ubicación a otra y automáticamente aterrizará en la ubicación de destino.
Hagamos algunos directorios y archivos de muestra.
$ mkdir dir1 dir2
$ touch file1 file2
Ahora copie el archivo1 a dir1 usando el comando:
$ cpcd file1 dir1
$ pwd /home/sk/dir1
Como puede ver, el comando anterior copia el file1
a dir1
y luego automáticamente cd
en el dir1
ubicación.
Siguiente movimiento file2
a dir2
usando el comando:
$ cd
$ mvcd file2 dir2
$ pwd /home/sk/dir2
Este comando copia file2
a dir2
y automáticamente cd
en el dir2
ubicación.
Salida de muestra:
Espero que esto ayude.
Otros consejos de Bash
- Renombrar archivos sin escribir el nombre completo dos veces en Linux
- Una función Bash para extraer archivos de varios tipos