Cómo eliminar los espacios de los nombres de archivos

teclado, cómo eliminar espacios nombres archivos

En muchas ocasiones te habrás topado con nombres de ficheros y directorios que tienen espacios intermedios en sus nombres, especialmente aquellos que provienen de Windows. Estos espacios son en muchas ocasiones molestos, especialmente para trabajar desde el shell, ya que necesitas identificarlos para que no sean tratados como nombres u opciones de un comando separadas. Por eso, en este tutorial vamos a ver algunas formas de eliminar los espacios de forma automatizada.

Además, también veremos cómo se pueden usar estos ficheros o directorios con nombres que tienen espacios sin que te lance un error.

Cómo usar ficheros y directorios con espacios

Para tratar de escapar de los espacios de los nombres de los ficheros y directorios en el terminal de Linux, puedes hacerlo de estas formas:

  • Incluyendo «» (comillas dobles) en parte de la ruta donde haya espacios o en toda ella. Por ejemplo:

cd "nombre con espacio"/

  • Usando un carácter \ antes de cada espacio. Por ejemplo:

nano nombre\ con\ espacio.txt

De estas formas, lograrás eludir estos molestos espacios. Ahora bien, para no tener que volver a usar estas opciones que pueden ser más incómodas, podrás seguir los siguientes pasos…

Cómo eliminar los espacios de los nombres

Ahora bien, puedes usar varios métodos para que estos espacios en nombres dejen de ser un problema para siempre. Si tienes gran cantidad de nombres con espacio, no es lógico hacerlo uno a uno, pero se puede automatizar estas tareas para eliminar o sustituir los espacios:

  • Usar el comando rename para ello. Por ejemplo, el primero de estos comandos elimina los espacios de todos los .txt, mientras que el segundo lo hace en todos los archivos dentro del directorio actual:

rename ‘s/\s/_/g’ ./*.txt
rename ‘s/\s/_/g’ ./*.*

  • Usar find para reemplazar todos los nombres que tengan espacios, sustituyendo estos por _. Por ejemplo, hacerlo con todos los .txt del directorio actual o de todo el FS:

find . -type f -name "* *.txt" -exec bash -c 'mv "$0" "${0// /_}"' {} \;

**find / -type f -name "* *.txt" -exec bash -c 'mv "$0" "${0// /_}"' {} \;

**¡Cuidado con el segundo comando! Puede alterar nombres que sean empleados por ciertos programas y que dejen de funcionar.

El contenido del artículo se adhiere a nuestros principios de ética editorial. Para notificar un error pincha aquí.

Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada.

*

*

  1. Responsable de los datos: AB Internet Networks 2008 SL
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.