GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come sostituire gli spazi nei nomi dei file con i caratteri di sottolineatura sulla shell di Linux

Mentre lavori con Linux, potresti imbatterti in alcune utilità e app che funzionano solo con nomi di file che non includono spazi. Non sempre salviamo i file in questo formato "senza spazio" e potrebbe essere necessario cercare una soluzione alternativa che sostituisca gli spazi nei nomi dei file con i caratteri di sottolineatura '_'. In questo modo i nomi dei tuoi file non conterranno spazi e potrai utilizzarli facilmente in tutte le applicazioni.

In questo articolo, ti spiegheremo due modi per convertire tutti gli spazi nei nomi dei file in caratteri di sottolineatura, molto semplicemente tramite la riga di comando.

Abbiamo eseguito i comandi e le procedure menzionati in questo articolo su un sistema Ubuntu 18.04 LTS.

La mia cartella Download, che userò come esempio per questo articolo, contiene spazi in tutti i nomi di file.

$ ls Downloads

Userò questa cartella per spiegare come convertire i nomi dei file in un nuovo formato.

Metodo 1:tramite un unico comando mv

In questo metodo, utilizzeremo il comando Ubuntu mv in un ciclo for per rinominare tutti i file/cartelle in una determinata directory in modo che tutti gli spazi nei loro nomi vengano sostituiti con caratteri di sottolineatura.

Apri la riga di comando di Ubuntu, il Terminale, tramite la ricerca in Avvio applicazioni o la scorciatoia Ctrl+Alt+T.

Ecco la sintassi del comando che utilizzerai:

$ for file in *; do mv "$file" `echo $file | tr ' ' '_'` ; done

Ho eseguito lo stesso comando per sostituire gli spazi con i trattini bassi nella mia cartella Download:

Quando ho elencato di nuovo il contenuto della directory, puoi vedere che tutti i nomi di file ora contengono caratteri di sottolineatura anziché spazi.

Metodo 2:utilizzo di uno script per rinominare i file

In questo metodo, utilizzeremo uno script bash che utilizza il comando mv per rinominare i nomi di file e cartelle in modo che tutti gli spazi vengano sostituiti con caratteri di sottolineatura.

Apri l'applicazione Terminale e spostati nella cartella bin come segue:

$ cd ~bin

Ora apri un nuovo file di script in uno dei tuoi editor di testo preferiti. Useremo l'editor nano per aprire un file di script vuoto con il nome di replace_spaces.sh

$ sudo nano replace_spaces.sh

In quel file vuoto, aggiungi il seguente script:

#!/bin/bash

for f in *
do
  new="${f// /_}"
  if [ "$new" != "$f" ]
  then
    if [ -e "$new" ]
    then
      echo not renaming \""$f"\" because \""$new"\" already exists
    else
      echo moving "$f" to "$new"
    mv "$f" "$new"
  fi
fi
done

Suggerimento: Invece di digitare l'intero script nel tuo file bash, puoi copiarlo da qui e incollarlo nel Terminale usando Ctrl+Maiusc+V o usando l'opzione Incolla dal menu di scelta rapida.

Ecco come apparirà il tuo file:

Ora, esci dal file tramite la scorciatoia Ctrl+X e salva il file su "Salva buffer modificato?" prompt digitando Y e quindi premendo Invio.

Per rendere questo file uno script eseguibile, esegui il seguente comando nel tuo Terminale:

$ sudo chmod +x replace_spaces.sh

Ora sei pronto per utilizzare lo script in qualsiasi cartella.

Quando eseguo lo script nella mia cartella Download di esempio, vedo tutti gli spazi nei nomi dei miei file convertiti in caratteri di sottolineatura come segue:

Quindi, questi erano i due modi attraverso i quali è possibile rinominare i file in modo che tutti gli spazi nei loro nomi vengano convertiti in caratteri di sottolineatura. Ora qualsiasi applicazione che stai utilizzando non mancherà di riconoscere i nomi di file che contengono spazi.


Ubuntu
  1. Nozioni di base su Linux:come scaricare file sulla shell con Wget

  2. Come usare il comando tail in Ubuntu Linux

  3. Come modificare la shell predefinita in Linux

  4. Come modificare la shell predefinita in Linux

  5. Come sostituire un file in jar con la riga di comando in Linux?

Come eseguire lo script della shell come servizio Systemd in Linux

Come leggere un file con spazi in Linux

Come modificare la shell utente predefinita nel sistema operativo Linux

Come visualizzare i dati con il comando Tail in Linux

Come affrontare i nomi dei file con gli spazi in Linux

Proteggi Linux con il file Sudoers