Icono de Terminal

Mover, copiar, renombrar y borrar directorios y archivos en Linux

publicado en: Consola, Linux, Sist. Operativos | 10
 
 

Índice General

  1. Introducción
  2. Mover
  3. Copiar
  4. Renombrar
  5. Borrar

 

  1. Introducción (Volver al índice General)
    Linux ofrece una gran variedad de opciones para manipular archivos y directorios, pero en ocasiones, no nos quedará otro remedio que utilizar la consola (Interfaz de Línea de Comandos, CLI), ya sea por que hemos perdido nuestro entorno gráfico o por que, como en el caso de servidores que son administrados desde la consola, no dispongamos de entorno gráfico.
    En este artículo veremos como hacerlo desde la consola con los comandos mv, cp y rm. Con estos comandos podremos mover, copiar, renombrar y borrar directorios y archivos. Con todos ellos podremos usar comodines (*, ?, etc.).
  2. Mover (Volver al índice General)
    Con el comando mv el archivo o carpeta se mueve físicamente de un lugar a otro, en vez de duplicarse.
    La sintaxis básica del comando mv es:

    $ mv <origen> <destino></destino></origen>

    Entre las opciones para mv están:

    • -i: interactivo. Preguntará si el archivo seleccionado sobrescribirá un archivo ya existente en destino. Nos da la oportunidad de asegurarnos de que se quiere reemplazar un archivo.
    • -f: forzar. Omite el modo interactivo y mueve sin preguntar. A menos que se sepa que se hace, esta opción no es conveniente.
    • -v: verboso. Muestra una lista de los archivos que se mueven.

    Ejecute $ man mv para ver todas las opciones.

    • Mover directorios (Volver al índice General)
      Para mover un directorio, utilizaremos el siguiente comando:

      $ mv directorio /ruta/directorio/destino/
    • Mover archivos (Volver al índice General)
      Para mover un archivo, utilizaremos el siguiente comando:

      $ mv archivo.txt /ruta/nueva/al/archivo/

      Para mover varios archivos con una sola orden, utilizaremos el siguiente comando:

      $ mv archivo1.txt archivo2.txt /ruta/nueva/al/archivo/

      Podemos utilizar comodines (*,?).
      Por ejemplo, mover solo los archivos con la extensión .txt:

      $ mv *.txt /ruta/nueva/a/los/archivos/

      Por ejemplo, mover solo los archivos con extensión terminada en la letra t:

      $ mv *.??t /ruta/nueva/a/los/archivos/
  3. Copiar (Volver al índice General)
    La sintaxis básica del comando cp es:

    $ cp <origen> <destino></destino></origen>

    Entre las opciones para cp están:

    • -i: interactivo. Pedir confirmación si se va a sobreescribir un archivo. Es una opción útil para prevenir la sobrescritura de un archivo.
    • -r, -R: recursivo. En vez de copiar archivos, copia el árbol de directorios entero, subdirectorios y los archivos, a otra ubicación.
    • -v: verboso. Mostrará el progreso al copiar archivos.

    Ejecute $ man cp para ver todas las opciones.

    • Copiar directorios (Volver al índice General)
      Copiar directorios completos: se copiará el directorio, los archivos que contiene y subcarpetas:

      $ cp -r directorio/ /ruta/al/directorio/destino/

      Con la opción -r indicamos recursividad.

    • Copiar archivos (Volver al índice General)
      Copiar un archivo al mismo directorio:

      $ cp /ruta/al/archivo/archivo.txt /ruta/al/archivo/archivo.txt.back

      o también:

      $ cp /ruta/al/archivo/archivo.txt{,.back}

  4.  
     

  5. Renombrar (Volver al índice General)

    • Renombrar directorios (Volver al índice General)
      Para renombrar un directorio, utilizaremos el mismo comando que para mover, pero indicando un nuevo nombre para el directorio:

      $ mv /ruta/al/directorio /ruta/al/directorio_nuevo
    • Renombrar archivos (Volver al índice General)
      Para renombrar un archivo, utilizaremos el mismo comando que para mover, pero indicando un nuevo nombre para el archivo:

      $ mv /ruta/al/archivo/archivo.txt /ruta/al/archivo/archivo.txt.back

      o también:

      $ mv /ruta/al/archivo/archivo.txt{,.back}
  6. Borrar (Volver al índice General)
    Para borrar archivos y directorios utilizaremos el comando rm.
    La sintaxis básica del comando rm es:

    $ rm [opciones] <archivo>|<directorio>...<archivo>|<directorio>...</directorio></archivo></directorio></archivo>

    Entre las opciones para rm están:

    • -i: interactivo. Pregunta para confirmar el borrado.
    • -f: forzar. Omite el modo interactivo y elimina archivo(s) sin preguntar.
    • -v: verboso. Muestra un listado de archivos según se eliminan.
    • -r, -R: recursivo. Al eliminar directorios se eliminan archivos y subdirectorios del directorio especificado. También elimina directorios vacíos.

    Ejecute $ man rm para ver todas las opciones.

    • Borrar directorios (Volver al índice General)
      Para borrar directorios utilizaremos la opción -r:

      $ rm -r directorio

      Si queremos forzar el borrado recursivo, ejecutaremos el siguiente comando:

      $ rm -rf directorio

      También podemos borrar directorios con el comando rmdir, pero este comando no borra recursivamente, por lo tanto, no borrará directorios con archivos o subdirectorios. Solo elimina directorios vacios.
      Ejecute $ man rmdir para ver todas las opciones.

    • Borrar archivos (Volver al índice General)
      Para borrar un archivo, sin que nos pregunte si estamos seguros de querer borrarlo, ejecutaremos el siguiente comando:

      $ rm archivo.txt

      Con el siguiente comando haremos lo mismo pero nos preguntará si queremos o no borrarlo:

      $ rm -i archivo.txt 
      rm: ¿borrar el fichero regular vacío 'archivo.txt'? (s/n)

      Podemos borrar varios archivos con un solo comando:

      $ rm archivo1.txt archivo2.txt

      También podremos utilizar los comodines para eliminar un conjunto de archivos. Por ejemplo, borrar todos los archivos con extensión .txt:

      $ rm *.txt

 

Espero que este artículo os haya sido de utilidad. Si pensáis que podéis colaborar para mejorar este artículo, que hay algo erróneo en él o simplemente deseáis comentarlo, por favor, dejad vuestra opinión más abajo.
  Configuración de privacidad y de cookies.
Seguir J. Carlos:

Técnico Informático - Desarrollo Web - Administración de Redes

Técnico Informático. Desarrollo Web. Administración de redes.

Últimas publicaciones de

10 comentarios

  1. PALC

    Hola! tengo una consulta a base de un problema, el cual es el siguiente: «Tengo 30 directorios con varios archivos en cada uno. Necesito un archivo por cada carpeta. Cada archivo tiene un nombre distinto, pero con un denominador común, por ejemplo, a_b; b_b; c_b; etc., estos, como se menciona, están en las distintos directorios, por cuanto solo necesito los que tienen por nombre común»_b».
    La pregunta es: ¿Cómo puedo mover esos archivos «_b» de distintos directorios a un nuevo directorio mediante terminal de linux?
    De ante mano, muchas gracias

    • J. Carlos

      Hola PALC.
      Veamos, supongamos que tengo dos directorios:
      /home/usuario/temp1
      /home/usuario/temp2
      En temp1 tengo los directorios y archivos siguientes en cada directorio:
      /home/usuario/temp1/dir1
      a_a_dir1
      a_b_dir1
      a_c_dir1
      /home/usuario/temp1/dir2
      a_a_dir2
      a_b_dir2
      a_c_dir2
      /home/usuario/temp1/dir3
      a_a_dir3
      a_b_dir3
      a_c_dir3
      Para mover solo los archivos que tienen por nombre común «_b» de todos los directorios de /home/usuario/temp1 al directorio /home/usuario/temp2, haría lo siguiente:
      $ find /home/usuario/temp1 -type f -name *_b* -exec mv {} /home/usuario/temp2 \;
      Este comando encontraría todos los archivos que contienen _b en el nombre dentro del directorio /home/usuario/temp1 y los movería uno a uno al directorio /home/usuario/temp2.
      Si listamos el directorio temp2 obtendríamos lo siguiente:
      $ ls -l temp2
      total 0
      -rw-r–r– 1 karfer karfer 0 abr 27 18:02 a_b_dir1
      -rw-r–r– 1 karfer karfer 0 abr 27 18:03 a_b_dir2
      -rw-r–r– 1 karfer karfer 0 abr 27 18:03 a_b_dir3

      Genéricamente, el comando sería así:
      $ find /directorio_origen -type f -name nombre_o_parte_del_nombre -exec mv {} /directorio_destino \;

      Espero que te sirva este comando
      Un Saludo

    • J. Carlos

      Hola Bruno Gino,

      Con los comandos utilizados en este artículo, tendrías que concatenar dos instrucciones, por ejempl:
      Concatenarlos con ; El segundo comando se ejecutará sin importar el resultado del primero.
      $ cp ; mv
      Concatenarlos con && El segundo comando se ejecutará solo si el primero termina con éxito.
      $ cp && mv
      Si te interesa saber como ejecutar más de un comando a la vez, mira este artículo: Cómo ejecutar más de un comando a la vez en la terminal de Linux.

      Espero que te haya servido de algo,
      Un saludo y gracias por visitar ZeppelinuX

  2. griselda

    les agradecería si alguien me dice cual es la forma mas fácil de copiar archivos desde linux mint a un pendrive?

  3. Ender

    El comando «rm» es incorrecto actualmente y ese comando solo sirve para mover archivos y no renombrarlos

    • J. Carlos

      Hola Ender,
      El comando rm se sigue utilizando pra borrar archivos, para mover o renombrar se puede utilizar el comando mv.

      Gracias por visitar ZeppelinuX

  4. Javier Alonso Gil

    Pretendiendo huir del monopolio del de las ventanas y enamorado del concepto vuestro. Código libre, comunidad y movido por los problemas (sobre todo con la impresora) he hecho varias pruebas con linux (mint y manjaro). Siempre siguiendo al pie de la letra los muchos tutoriales para una instalación personalizada pero no encuentro nada más que problemas. Este es uno de ellos.

    Hago las particiones para el root, swap y datos esperando que estos últimos se guarden en esta partición, pero no.

    Después de muchas adivinaciones para interpretar “mv “ como (mv /home/carpetapersonal/datos/carpeta personal) me dice “No existe el fichero o el directorio” elimino el destino (mv /home/carpetapersonal/) y me dice «mv: falta el fichero de destino después de ‘/home/carpetapersonal/datos/’ Pruebe ‘mv –help’ para más información.» pero no puedo crear, copiar, cortar.

    ¿Es necesaria tanta complicación? ¿Realmente se pretende llegar al máximo posible de usuarios?
    Gracias por tu atención.

  5. Giselle Nieves

    Hola tengo un problema, mi directory ‘Root’ dejó de existir luego de que pusiera el comando ‘mv hello_world /root’ estando en una directory llamada /tmp, realice esto con el motivo de mover el file hello world que principalmente estaba en la directory/tmp hacia /root pero al hacer esto instantáneamente /root ya no existía, quise volver a la raíz ( cd /root ) y la respuesta era que no existía file or directory con ese nombre, cuál es mi error??

    • J. Carlos

      Hola Giselle,
      Quizás, al ejecutar la orden, olvidastes poner al final la / final, por ejemplo:

      $ sudo mv hello_world /root/

      Puede que el archivo hello_word se haya movido a un archivo llamado root. Comprueba que /root es un directorio en vez de un archivo.
      De todas forma, si al hacer un

      $ sudo cd /root

      no puedes posicionarte en dicho directorio, es que ha desaparecido y tienes un problema.
      También puedes comprobar si existe el directorio ejecutando un ls con la opción -d:

      $ ls -lad /

      y comprobar que existe el directorio /root. Si es así, tendrías que regenerar un nuevo directorio para root.

      Un saludo y gracias por visitar Zeppelinux
      Siento no haber contestado antes, he estado muy liado.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.