GNU/Linux >> Tutoriales Linux >  >> Linux

Renombrar archivos por lotes en la línea de comandos y Xargs

Esto también se puede hacer con xargs y sed para cambiar la extensión del archivo.

ls | grep \.png$ | sed 'p;s/\.png/\.jpg/' | xargs -n2 mv

Puede imprimir el nombre de archivo original junto con el que desea que sea el nombre de archivo. Luego haga que xargs use esos dos argumentos en el comando de movimiento. Para el resumen, también agregué un grep para filtrar todo lo que no sea un archivo *.png.


¿Cómo cambio el nombre del archivo para que solo pueda tener una extensión?

cd dir/with/messedup/files

for file in *.png.jpg; do
  mv "$file" "${file%.png.jpg}.jpg"
done

en el futuro, usando xargs, ¿cómo cambio la extensión del archivo simular a segundo comando?

Que yo sepa, eso no se puede hacer. La mejor manera de hacerlo sería usar un bucle for con sustitución de parámetros como el de arriba:

for file in *.png; do
  convert "$file" -resize "${file%.png}.jpg"
done

Si tiene archivos en subdirectorios que desea convertir, puede canalizar find a un while read bucle:

find . -type f -name '*.png' |
while read file; do
  convert "$file" -resize "${file%.png}.jpg"
done

NOTA: Generalmente se considera una mala idea usar la salida de ls en un script de shell. Si bien su ejemplo podría haber funcionado bien, hay muchos ejemplos en los que no funciona. Por ejemplo, si sus nombres de archivo tienen líneas nuevas (lo que Unix permite), ls probablemente no escapará de eso por ti. (Eso en realidad depende de su implementación, que es otra razón para no usar ls en guiones; su comportamiento varía mucho de un cuadro a otro). Obtendrá resultados más consistentes si usa find en un ciclo de lectura durante la lectura o archivo globbing (por ejemplo, *.png ) en un bucle for.


Linux
  1. Encuentra archivos y directorios en Linux con el comando de búsqueda

  2. Copie y pegue en la línea de comandos de Linux con xclip

  3. Cómo cambiar permisos y propietarios a través de la línea de comandos

  4. Cómo eliminar archivos y directorios en Linux desde la línea de comandos

  5. Almacene la salida del comando de fecha y reloj en un archivo

Cómo mover archivos y directorios en Linux (comando mv)

Comando Cp en Linux (Copiar archivos)

Comando Stat:mostrar atributos de archivos y directorios

Encontrar los archivos y carpetas más grandes en la línea de comandos de Linux

Comando tar de Linux para comprimir y extraer archivos

Renombrar archivos y carpetas en cPanel