In altri ambienti del sistema operativo, la creazione e l'utilizzo di nomi di file con spazi è irrevocabilmente consentita. Tuttavia, quando entriamo nel dominio del sistema operativo Linux, l'esistenza di tali nomi di file diventa un inconveniente.
Ad esempio, considera l'esistenza dei seguenti nomi di file all'interno di un ambiente del sistema operativo Linux.

Secondo la visualizzazione a riga di comando di questi nomi di file, elaborarli o spostarli diventa un inconveniente ingiustificato a causa dello spazio bianco nella loro convenzione di denominazione.
Inoltre, gli spazi dei nomi di file in Linux sono uno svantaggio per gli utenti che li elaborano tramite applicazioni basate sul Web come la stringa %20
tende ad essere incluso come parte del nome file elaborato/finale.
Questo articolo esamina approcci validi per aiutarti a sbarazzarti degli spazi sui nomi dei file mentre lavori in un ambiente con sistema operativo Linux.
Prerequisito
Acquisire familiarità con l'utilizzo del terminale Linux o dell'interfaccia della riga di comando. A scopo di riferimento pratico, utilizzeremo i nomi di file distanziati presentati nella schermata seguente.

1. Rimozione di spazi dal nome file con estensione file specifica
Il comando find è combinato con il comando mv per eseguire efficacemente il suo obiettivo funzionale di rimuovere gli spazi su un nome di file con un'estensione di file specifica, ad esempio .xml
file.
$ find . -type f -name "* *.xml" -exec bash -c 'mv "$0" "${0// /_}"' {} \;

2. Sostituzione degli spazi dei nomi dei file utilizzando il comando rinomina
In alternativa, invece di utilizzare trova con mv comandi per tracciare e sostituire gli spazi dei nomi di file, potremmo usare un singolo rinominare command, che è un'estensione pearl e può essere installato nelle seguenti distribuzioni del sistema operativo Linux:
$ sudo apt install rename [On Debian, Ubuntu and Mint] $ sudo yum install rename [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux] $ sudo emerge -a sys-apps/rename [On Gentoo Linux] $ sudo pacman -S rename [On Arch Linux] $ sudo zypper install rename [On OpenSUSE]
Una volta installato, il rinomina comando può essere utilizzato nel modo seguente:
$ rename 's/\s/_/g' ./*.xml
Il comando precedente sostituirà gli spazi in tutti i .xml
file con un trattino basso. Per sostituire tutti gli spazi in tutti i nomi di file indipendentemente dall'estensione del file, utilizzare:
$ rename 's/\s/_/g' ./*.*

3. Sostituzione degli spazi dei nomi di file utilizzando For Loop e il comando mv
Questo approccio è efficace per eliminare gli spazi dei nomi di file su diversi formati di nomi di file esistenti in una cartella/directory specifica/mirata. Il ciclo for la funzione interroga gli spazi dei nomi dei file all'interno di una directory/cartella di destinazione e successivamente sostituisce quegli spazi dei nomi dei file con una notazione di sottolineatura.
Considera la seguente implementazione di questo approccio:
$ for f in *; do mv "$f" `echo $f | tr ' ' '_'`; done

Prima dell'inizio di questo articolo, gli spazi dei nomi di file erano una seccatura soprattutto quando era necessario copiare e spostare file dal terminale Linux o elaborarli tramite un programma basato sul Web. Questo tutorial ha fornito una soluzione praticabile che funziona contro tali inconvenienti.