Inicio Todo lo relacionado a Internet, Programación y Tecnología

Cambiar nombre o mover archivos y carpetas en Linux

Algunas de las tareas más básicas en una terminal en Linux son copiar y mover archivos y carpetas en nuestro sistema de archivos. En este caso se hablará sobre mover archivos y carpetas y también renombrarlos. Existen diferentes formas de hacerlo ya que en algunas se trata de mover de forma recursiva o bajo ciertas condiciones con filtros. Por dar algunos ejemplos con filtros: mover archivos con determinada extensión y mover archivos ocultos del sistema.

Para la ejecución de comandos hay que tener en cuenta que es necesario contar con los permisos adecuados de lectura y escritura. Si hacemos uso de sudo para mover los archivos y carpetas pasan a pertenecer al usuario root automáticamente.

Mover archivos y carpetas

mv

Para mover archivos o carpetas usamos el comando mv. El formato de mv es:

mv opciones -T ORIGEN DESTINO
mv opciones ORIGEN DESTINO
mv opciones -t DIRECTORIO ORIGEN

Normalmente mv renombra o mueve los elementos según donde se encuentre el origen y destino, por ejemplo: al mover un archivo en el mismo sistema de archivos solo se le cambia el nombre y si lo hacemos entre dos diferentes sistemas de archivos se copia y luego se elimina el origen.

Algunas opciones disponibles para el comando:

  • -f, --force: no pregunta para sobreescribir elementos.
  • -i, --interactive: contrario a --force, pide confirmación antes de sobreescribir elementos.
  • -t, --target-directory=DIRECTORIO: se especifica el directorio destino, útil cuando se especifican varios elementos en forma de argumentos.
  • -T, --no-target-directory: trata el destino como si fuera un archivo.
  • -u, --update: mueve el archivo ORIGEN al destino solo si es más nuevo que otro que ya exista.
  • -v, --verbose: muestra detalladamente qué es lo que está haciendo el comando durante la ejecución.

Mover archivos individuales

Para mover un archivo individual conservando el nombre excluimos el nombre en la ruta de destino:

mv /carpeta-origen/archivo.ext /carpeta-destino/

Para mover un archivo individual y cambiarle el nombre al mismo tiempo usamos:

mv /carpeta-origen/archivo-antiguo.ext /carpeta-destino/archivo-renombrado.ext

Cambiar nombre de archivos

Para esto usamos el mismo comando mv, pero especificando la misma ruta de origen y destino:

mv archivo.ext nuevo-nombre.ext
mv /origen/archivo /origen/archivo

Con cualquiera de estos dos comandos solo se cambiara el nombre del archivo especificado.

Mover archivos y carpetas de forma recursiva

Cuando usamos mv no es necesario especificar que se moverán los elementos de forma recursiva, esto ocurre de forma predeterminada contrario a usar el comando cp. Por lo que si usamos el comando para mover una carpeta podemos estar seguros que se moverán todos los archivos y carpetas.

Mover solo archivos de una carpeta

Si tenemos una carpeta con varios archivos y carpetas dentro, pero solo necesitamos mover los archivos:

find /directorio-origen/ -maxdepth 1 -type f | xargs mv -t /directorio-destino/

Mover solo un tipo de archivos basado en extensión

Para esto solo necesitamos ejecutar:

mv /origen/*.extension /destino/

El único problema del comando es que solo funciona con el primer nivel de archivos y no de forma recursiva.

Mover solo archivos ocultos

Si únicamente queremos mover archivos ocultos usamos:

mv /origen/.* /destino/

Se usa un punto al principio ya que los archivos ocultos en Linux tienen esta característica.

Etiquetas
Categorías

Comentarios

© 2020 ImperioWeb.net Todos los derechos reservados.