GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo reemplazar espacios en nombres de archivos con guiones bajos en el shell de Linux

Mientras trabaja con Linux, es posible que encuentre algunas utilidades y aplicaciones que solo funcionan con nombres de archivo que no incluyen espacios. No siempre guardamos archivos en este formato "sin espacio" y es posible que tengamos que buscar una solución alternativa que reemplace los espacios en los nombres de archivo con caracteres de subrayado '_'. De esta manera, sus nombres de archivo no contendrán espacios y podrá trabajar fácilmente con ellos en todas las aplicaciones.

En este artículo, le explicaremos dos formas de convertir todos los espacios en los nombres de archivo en guiones bajos, muy simplemente a través de la línea de comando.

Hemos ejecutado los comandos y procedimientos mencionados en este artículo en un sistema Ubuntu 18.04 LTS.

Mi carpeta Descargas, que usaré como ejemplo para este artículo, contiene espacios en todos los nombres de archivo.

$ ls Downloads

Usaré esta carpeta para explicar cómo convierto los nombres de archivo a un nuevo formato.

Método 1:A través de un solo comando mv

En este método, utilizaremos el comando mv de Ubuntu en un bucle for para cambiar el nombre de todos los archivos/carpetas en un directorio determinado para que todos los espacios en sus nombres se reemplacen con caracteres de subrayado.

Abra su línea de comando de Ubuntu, la Terminal, ya sea a través de la búsqueda del Lanzador de aplicaciones o el atajo Ctrl+Alt+T.

Esta es la sintaxis del comando que utilizará:

$ for file in *; do mv "$file" `echo $file | tr ' ' '_'` ; done

Ejecuté el mismo comando para reemplazar espacios con guiones bajos en mi carpeta de Descargas:

Cuando volví a enumerar el contenido del directorio, puede ver que todos los nombres de archivo ahora contienen guiones bajos en lugar de espacios.

Método 2:usar un script para cambiar el nombre de los archivos

En este método, haremos uso de un script bash que usa el comando mv para cambiar el nombre de los archivos y carpetas de manera que todos los espacios se reemplacen con guiones bajos.

Abra la aplicación Terminal y muévase a la carpeta bin de la siguiente manera:

$ cd ~bin

Ahora, abra un nuevo archivo de script en uno de sus editores de texto favoritos. Usaremos el editor nano para abrir un archivo de script vacío con el nombre de replace_spaces.sh

$ sudo nano replace_spaces.sh

En ese archivo vacío, agregue el siguiente script:

#!/bin/bash

for f in *
do
  new="${f// /_}"
  if [ "$new" != "$f" ]
  then
    if [ -e "$new" ]
    then
      echo not renaming \""$f"\" because \""$new"\" already exists
    else
      echo moving "$f" to "$new"
    mv "$f" "$new"
  fi
fi
done

Consejo: En lugar de escribir todo el script en su archivo bash, puede copiarlo desde aquí y pegarlo en la Terminal usando Ctrl+Shift+V, o usando la opción Pegar del menú contextual.

Así es como se verá su archivo:

Ahora, salga del archivo a través del atajo Ctrl+X y guarde el archivo en "¿Guardar búfer modificado?" mensaje escribiendo Y y luego presionando Enter.

Para convertir este archivo en un script ejecutable, ejecute el siguiente comando en su Terminal:

$ sudo chmod +x replace_spaces.sh

Ahora está listo para usar el script en cualquiera de sus carpetas.

Cuando ejecuto el script en mi carpeta de descargas de muestra, veo todos los espacios en mis nombres de archivo convertidos en guiones bajos de la siguiente manera:

Entonces, estas fueron las dos formas en que puede cambiar el nombre de los archivos para que todos los espacios en sus nombres se conviertan en guiones bajos. Ahora, cualquier aplicación que esté utilizando no dejará de reconocer los nombres de archivo que contienen espacios.


Ubuntu
  1. Cómo cambiar el shell predeterminado en Linux

  2. Cómo cambiar el shell predeterminado en Linux

  3. ¿Cómo escribir un archivo con C en Linux?

  4. ¿Cómo reemplazar un archivo en jar con línea de comando en Linux?

  5. ¿Cómo cambio el nombre de los archivos con espacios usando el shell de Linux?

Cómo ejecutar Shell Script como servicio Systemd en Linux

Cómo leer un archivo con espacios en Linux

Cómo cambiar el shell de usuario predeterminado en el sistema operativo Linux

Cómo ver datos con el comando Tail en Linux

Cómo abordar los nombres de archivo con espacios en Linux

Asegure Linux con el archivo Sudoers