En otros entornos de sistemas operativos, la creación y el uso de nombres de archivos con espacios están irrevocablemente permitidos. Sin embargo, cuando ingresamos al dominio del sistema operativo Linux, la existencia de dichos nombres de archivo se convierte en un inconveniente.
Por ejemplo, considere la existencia de los siguientes nombres de archivo dentro de un entorno de sistema operativo Linux.
Según la vista de la línea de comandos de estos nombres de archivo, procesarlos o moverlos se convierte en un inconveniente injustificado debido al espacio en blanco en su convención de nomenclatura.
Además, los espacios de nombre de archivo en Linux son una desventaja para los usuarios que los procesan a través de aplicaciones basadas en web como la cadena %20
tiende a incluirse como parte del nombre de archivo procesado/final.
Este artículo analiza enfoques válidos para ayudarlo a deshacerse de los espacios en los nombres de archivo mientras trabaja en un entorno de sistema operativo Linux.
Requisito previo
Familiarícese con el uso de la terminal de Linux o la interfaz de línea de comandos. Para fines prácticos de referencia, utilizaremos los nombres de archivo espaciados que se presentan en la siguiente captura de pantalla.
1. Eliminación de espacios del nombre de archivo con extensión de archivo específica
El comando find se combina con el comando mv para ejecutar efectivamente su objetivo funcional de eliminar espacios en un nombre de archivo con una extensión de archivo específica, por ejemplo, .xml
archivos.
$ find . -type f -name "* *.xml" -exec bash -c 'mv "$0" "${0// /_}"' {} \;
2. Reemplazo de espacios de nombre de archivo usando el comando de cambio de nombre
Alternativamente, en lugar de usar buscar con mv comandos para rastrear y reemplazar espacios de nombre de archivo, podríamos usar un solo rename comando, que es una extensión perla y se puede instalar en las siguientes distribuciones del sistema operativo Linux:
$ sudo apt install rename [On Debian, Ubuntu and Mint] $ sudo yum install rename [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux] $ sudo emerge -a sys-apps/rename [On Gentoo Linux] $ sudo pacman -S rename [On Arch Linux] $ sudo zypper install rename [On OpenSUSE]
Una vez instalado, el renombrar El comando se puede utilizar de la siguiente manera:
$ rename 's/\s/_/g' ./*.xml
El comando anterior reemplazará los espacios en todos los .xml
archivos con un guión bajo. Para reemplazar todos los espacios en todos los nombres de archivo, independientemente de la extensión del archivo, use:
$ rename 's/\s/_/g' ./*.*
3. Reemplazo de espacios de nombre de archivo usando For Loop y mv Command
Este enfoque es efectivo para deshacerse de los espacios de nombre de archivo en diferentes formatos de nombre de archivo existentes en una carpeta/directorio específico/destinado. El bucle for consultas de función para espacios de nombre de archivo dentro de un directorio/carpeta de destino y luego reemplaza esos espacios de nombre de archivo con una notación de guión bajo.
Considere la siguiente implementación de este enfoque:
$ for f in *; do mv "$f" `echo $f | tr ' ' '_'`; done
Antes del comienzo de este artículo, los espacios de nombres de archivos eran una molestia, especialmente cuando necesita copiar y mover archivos desde la terminal de Linux o procesarlos a través de un programa basado en la web. Este tutorial ha proporcionado una solución viable que funciona contra tales inconvenientes.