GNU/Linux >> Tutoriales Linux >  >> Linux

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

Escape del espacio, p. Spring\ 2011 , o utilice comillas, p. 'Spring 2011' . En el futuro, normalmente es una mala idea usar nombres de archivos con espacios en ellos en cualquier *NIX.

Si tienes rename , puedes usar esto:

rename ' ' '_' [filenames...]

Si su máquina tiene el comando de cambio de nombre, esto cambiará todos los espacios a guiones bajos en todos los archivos/directorios en el directorio de trabajo actual:

rename 's/ /_/g' *

Si no tienes rename o prefiere usar solo el shell:

for f in *\ *; do mv "$f" "${f// /_}"; done

Desglosado:

  • *\ * selecciona todos los archivos con un espacio en su nombre como entrada para el for círculo. El patrón *X* selecciona todos los archivos con X en su nombre, y para el espacio de carácter especial, tenemos que escapar con una barra inclinada para que bash no lo trate como si estuviera separando diferentes argumentos.
  • Las comillas alrededor de "$f" son importantes porque sabemos que hay un espacio en el nombre del archivo y, de lo contrario, aparecería como más de 2 argumentos para mv .
  • ${f//str/new_str} es una función de sustitución de cadenas específica de bash. Todas las instancias de str se reemplazan con new_str .

Linux
  1. Cómo cifrar archivos con gocryptfs en Linux

  2. Uso del comando de búsqueda de Linux:uso con ejemplos

  3. ¿Cómo cambiar el nombre de varios archivos usando Buscar?

  4. Cómo cambiar el shell predeterminado en Linux

  5. Cómo buscar archivos usando expresiones regulares en el script de shell de Linux

Cómo cambiar el nombre de los archivos usando la línea de comandos en Linux

Cómo cambiar el nombre de un archivo (s) en Linux

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

Cómo encontrar archivos con el comando fd en Linux

¿Cómo determinar qué está utilizando la mayor cantidad de espacio en disco en un servidor Linux?

Cómo descargar archivos en Rocky Linux 8 en la línea de comandos usando wget