[Bash Tips] Cómo cp o mv y cd en un solo comando

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 un trazador de líneas mando. Para examplees 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 un sencillo bash función 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 similares a 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
}
                    
Función bash para cp o mv y cd en un solo comando

Guardar y close el archivo. Ejecute el siguiente comando para hacer efectivos 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 para dir1 y luego automáticamente cd en el dir1 ubicación.

Próximo movimiento file2 para dir2 usando el comando:

                      $ cd
                    
                      $ mvcd file2 dir2
                    
                      $ pwd

                      
                        /home/sk/dir2
                      
                    

Este comando copia file2 para dir2 y automáticamente cd en el dir2 ubicación.

Salida de muestra:

cp o mv y cd en un solo comando

Espero que esto ayude.

Otros consejos de bash

  • Cambiar el nombre de los archivos sin escribir el nombre completo dos veces en Linux
  • Una función Bash para extraer archivos de archivos de varios tipos

Related Posts