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