Come rinominare gli screenshot in Linux

Contenuti

Bash Shell

Molti sistemi Linux desktop salvano schermate con nomi come Screenshot from 2020-11-29 18-57-51.png. Spesso, quello di cui avevo veramente bisogno era rinominare i file in qualcosa di più ovvio come webinar1.png, webinar2.png, e così via. fortunatamente, rinominare un gruppo di file è molto facile da fare sulla riga di comando di Linux.

La shell Bash è molto versatile e fornisce diverse alternative per esaminare i valori e espandere le variabili. Una buona valutazione è valutazione aritmetica. Per eseguire questa valutazione, avvolgere la tua dichiarazione aritmetica con $(( e )).

La valutazione può includere anche l'espansione variabile, Che cosa $sum risolvere in un valore. Ma per comodità, qualsiasi variabile Bash elencata tra $(( e )) espandere automaticamente. Come esempio, per incrementare il conteggio di una variabile di 1, puoi digitare:

conteggio=$(( contare + 1 ))

È come scrivere:

conteggio=$(( $contare + 1 ))

L'espansione aritmetica supporta gli stessi operatori presenti in altri linguaggi di programmazione, incluso + e - addizione e sottrazione, * e / per moltiplicazione e divisione, e % per il resto. Puoi anche usare ++ e -- aumentare e diminuire un valore in una variabile. Vedi la pagina man di Bash e scorri verso il basso fino a VALUTAZIONE ARITMETICA per l'elenco completo degli operatori supportati e la loro precedenza.

Per rinominare tutti i miei screenshot, Avevo bisogno di scrivere questo comando bash di una riga:

n=1; per f in Screenshot*.png; do mv -v "$F" webinar$n.png; n=$(( n + 1 )); fatto

Ma, cosa fa questo?

La prima parte del comando, n=1, inizializzare la variabile n un 1.

Quindi io uso a for loop per operare su tutti i file che iniziano con Screenshot e finisci con .png estensione. Generalmente, questi sono tutti gli screenshot che ho catturato durante il mio ultimo webinar. Se dovessi essere più preciso, potresti includere la data in quella specifica del file, Che cosa Screenshot from 2020-11-29*.png. Le barre rovesciate sono escape letterali per preservare gli spazi nel nome del file.

Ogni iterazione del ciclo for memorizza un nome di file nella variabile f. Così lui mv comando mv -v "$f" webinar$n.png rinomina ogni file con i miei nomi di file preferiti come webinar1.png , webinar2.png , e così via. Ho bisogno di appuntamenti intorno al $f espansione variabile in modo che gli spazi in Screenshot from YYYY-MM-DD hh-mm-ss.png non crearmi problemi mv comando. Se ricevi un errore come mv: target 'webinar1.png' is not a directory, probabilmente non hai messo le virgolette in giro $f.

In sintesi, aumentare il valore in n variabile in modo che sia pronto per la prossima iterazione nel ciclo. Espansione aritmetica n=$(( n + 1 )) aumentare il n variabile in 1.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.