Homepage » come » Shell Geek rinomina più file contemporaneamente

    Shell Geek rinomina più file contemporaneamente

    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ì:

    per var in; do $ var; fatto

    Puoi sostituire con qualsiasi modello di corrispondenza dei 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 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:

    per f in *; fai mv $ f $ f / test / prod; fatto

    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.