GNU/Linux >> Linux Esercitazione >  >> Linux

Rinomina tutti i file e i nomi delle directory in minuscolo in Linux

Nel nostro articolo precedente, abbiamo descritto come contare il numero di file e sottodirectory all'interno di una determinata directory. Questa guida ti mostrerà come rinominare tutti i nomi di file e directory in minuscolo in Linux.

Leggi anche :Come scoprire le directory e i file principali (spazio su disco) in Linux

Esistono diversi modi per raggiungere questo obiettivo, ma spiegheremo due dei metodi più efficienti e affidabili. Ai fini di questa guida, abbiamo utilizzato una directory denominata Files che ha la seguente struttura:

# find Files -depth

1. Usa trova, xargs e rinomina i comandi insieme

rename è una semplice utility da riga di comando per rinominare più file contemporaneamente in Linux. Puoi usarlo insieme all'utilità trova per rinominare tutti i file o le sottodirectory in una particolare directory in minuscolo come segue:

$ find Files -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;

Spiegazione delle opzioni utilizzate nel comando precedente.

  • -depth – elenca i contenuti di ciascuna directory prima della directory stessa.
  • -n 1 – istruisce xargs per utilizzare al massimo un argomento per riga di comando da trova uscita.

Esempio di output dopo aver rinominato file e sottodirectory in minuscolo in Files directory.

Un altro modo alternativo per usare i comandi find e mv in uno script come spiegato di seguito.

2. Utilizzo dei comandi trova e mv nello script della shell

Per prima cosa crea il tuo script (puoi nominarlo come preferisci):

$ cd ~/bin
$ vi rename-files.sh

Quindi aggiungi il codice qui sotto.

#!/bin/bash
#print usage 
if [ -z $1 ];then
        echo "Usage :$(basename $0) parent-directory"
        exit 1
fi

#process all subdirectories and files in parent directory
all="$(find $1 -depth)"



for name in ${all}; do
        #set new name in lower case for files and directories
        new_name="$(dirname "${name}")/$(basename "${name}" | tr '[A-Z]' '[a-z]')"

        #check if new name already exists
        if [ "${name}" != "${new_name}" ]; then
                [ ! -e "${new_name}" ] && mv -T "${name}" "${new_name}"; echo "${name} was renamed to ${new_name}" || echo "${name} wasn't renamed!"
        fi
done

echo
echo
#list directories and file new names in lowercase
echo "Directories and files with new names in lowercase letters"
find $(echo $1 | tr 'A-Z' 'a-z') -depth

exit 0

Salva e chiudi il file, quindi rendi eseguibile lo script ed eseguilo:

$ chmod +x rename-files.sh
$ rename-files.sh Files     #Specify Directory Name

Potresti anche voler leggere questi seguenti articoli correlati.

  1. Spiegazione di "Tutto è un file" e tipi di file in Linux
  2. fswatch – Monitora i file e le modifiche o le modifiche alle directory in Linux
  3. Fasd:uno strumento a riga di comando che offre un accesso rapido a file e directory
  4. FSlint – Come trovare e rimuovere file duplicati in Linux

In questa guida, ti abbiamo spiegato come rinominare tutti i file e le directory in minuscolo in Linux. In caso di errori, contattaci tramite il modulo di feedback qui sotto. Puoi anche offrirci qualsiasi altro metodo per fare lo stesso.


Linux
  1. Come trovare un file in Linux in tutte le directory in modo ricorsivo

  2. Trova i file e le directory più grandi in Linux

  3. Trova tutto [nome file].mp4 e rinomina [nome file].audio?

  4. Elimina file e directory in base ai loro nomi. Nessun file o directory con questo nome?

  5. Linux Trova e rimuovi tutti i collegamenti simbolici relativi a una directory?

Trova comando in Linux (Trova file e directory)

Come rinominare file e directory in Linux

Come contare i file nella directory in Linux

Trova facilmente file e directory su Linux

Linux:trova il numero di file in una directory e sottodirectory

Come rinominare tutti i file con caratteri speciali e spazi in una directory?