GNU/Linux >> Linux Esercitazione >  >> Linux

Come rimuovere gli spazi dai nomi dei file in Linux

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.


Linux
  1. Come rimuovere le righe vuote da un file (inclusi tabulazione e spazi)?

  2. Linux:come eseguire un bootloader da Linux?

  3. Come posso rimuovere completamente Jenkins da Linux

  4. Come rimuovere le versioni precedenti di .NET Core da Linux (CentOS 7.1)

  5. Come rimuovere i caratteri non validi dai nomi dei file?

Come rimuovere un comando dalla cronologia in Linux

Come ottenere il nome del file dal percorso completo in Linux

Come rimuovere (^M) caratteri da un file in Linux

Come disinstallare le applicazioni da Ubuntu Linux

Come disinstallare programmi da Ubuntu Linux

Come affrontare i nomi dei file con gli spazi in Linux