Shell Geek: rinomina più file contemporaneamente

Shell Geek: rinomina più file contemporaneamente
Shell Geek: rinomina più file contemporaneamente

Video: Shell Geek: rinomina più file contemporaneamente

Video: Shell Geek: rinomina più file contemporaneamente
Video: How to Send / Transfer Large Files Over the Internet for Free Using Windows - YouTube 2024, Aprile
Anonim

Supponiamo che tu abbia una directory con centinaia di file con nomi di file errati e che desideri sostituire ogni nome di file che contiene test con pungolo. (questo è un esempio forzato). Possiamo farlo facilmente con il comando "for" in bash, combinato con un po 'di bontà. Oggi impareremo come sostituire il testo in una variabile in un ciclo for.

Il comando "for" funziona così:

for var in ;do $var;done

Puoi sostituire con qualsiasi modello di corrispondenza del file, come * o *.txt, e puoi sostituire con qualsiasi comando linux. Il comando verrà eseguito in sequenza su ciascuno dei file corrispondenti al modello di corrispondenza del file.

Questo è dove la gestione delle variabili bash lo rende ancora più interessante. Invece di fare semplicemente qualcosa come "mv $ var", possiamo sostituire il testo nel nome del file usando questa sintassi:

${var/originaltext/replacetext}

Così ora, se eseguiamo questo comando sulla nostra directory:

for f in *;do mv $f ${f/test/prod};done

Per ogni file corrispondente a *, bash eseguirà un comando simile a questo:

mv test.config prod.config

Ho scoperto che la conoscenza della shell ha un valore inestimabile quando si amministrano i server o solo per gestire la raccolta dei file e mi ha risparmiato ore di quello che altrimenti sarebbe stato un lavoro manuale.

E sì, mi rendo conto che ci sono un certo numero di strumenti che possono eseguire la rinomina di più file.

Consigliato: