L'unica cosa che noterai è che i file in Linux di solito non contengono nomi. Il tuo insegnante o collega usa il trattino basso invece degli spazi nei nomi di file e directory.
Non è che non puoi usare gli spazi nei nomi dei file nel terminale Linux. È solo che crea ulteriore dolore ed è per questo che dovresti evitarlo ove possibile.
Come mai? Lascia che lo mostri con esempi. Conosci la sintassi generica per i comandi Linux:
command [options] argument1 argument2
Qui, gli argomenti sono separati da spazi. Se provi a utilizzare direttamente i nomi dei file con spazi, verranno trattati come argomenti separati anziché come un solo argomento.
Nello screenshot sopra, quando provo a usare cat agatha books
comando, non capisce che agatha books
è un unico argomento. Tratta agatha
e books
come nomi di file diversi.
Come gestisci gli spazi nel nome del file, quindi? Ci sono due modi:
Racchiudi l'intero nome del file tra virgolette:
"file name withn spaces"
Esci da ogni spazio usando il tasto barra rovesciata:
file\ name\ with\ spaces
Lo mostrerò in dettaglio.
Il completamento delle schede spesso funziona anche con gli spazi. Il tuo terminale potrebbe mostrare il nome del file con lo spazio preceduto da una barra rovesciata se premi il tasto tab per il nome del file.Leggi un file con spazi in filename
Per utilizzare un nome file con spazi al suo interno, puoi racchiuderlo tra virgolette come questa:
cat "file name with spaces"
Puoi anche sfuggire a ogni spazio con una barra rovesciata, ma è più faticoso e confuso rispetto al metodo precedente:
cat file\ name\ with\ spaces
Fondamentalmente, metti un \
prima di ogni spazio nel nome del file.
Potresti anche usare virgolette singole invece di virgolette doppie.
cat 'file name with spaces'
Le virgolette singole ignorano i caratteri speciali. Le virgolette doppie ignorano tutto tranne $, le virgolette e le barre incrociate. Maggiori informazioni in qualche altro tutorial. Crea un file con spazio in filename
Ora, devi digitare lo spazio nel terminale per creare il nome del file qui. Usa di nuovo la barra rovesciata o le virgolette.
Simile alla sezione precedente, puoi creare nuovi file con spazi nel nome del file usando le virgolette:
touch "file name with spaces"
O anche la barra rovesciata:
touch file\ name\ with\ spaces
Gestire lo spazio nel nome della cartella
Puoi creare una directory con uno spazio nel nome nello stesso modo in cui crei un file.
mkdir "new dir"
Ora, se vuoi passare a questa directory, avrai un percorso con spazi.
Ma questo non dovrebbe più essere un problema per te. Per cd in una directory con spazio, usa di nuovo le virgolette o la barra rovesciata.
cd "new dir"
cd new\ dir
Fondamentalmente, ogni volta che hai a che fare con spazi nei nomi, usi le virgolette o i tasti backslash.
Supponiamo di dover copiare un file my file
da questa new dir
. Ecco cosa puoi fare:
cp new\ dir/my\ file
Ora inizia a fare un po' di confusione, giusto? Ci sono barre inverse e barre in avanti. Potrebbe intimidire un nuovo utente o anche un esperto se ci sono troppi di quei tagli.
Diventa ancora più disordinato quando ci sono barre inverse nel nome del file. Quindi vedrai doppi alzatine.
Questo è il motivo per cui dovresti cercare di evitare di usare spazi o altri caratteri speciali nei nomi dei file. Per separare le parole in un nome di file, usa il trattino basso.
touch a_very_long_file_name_with_too_many_words
Questo rende i nomi dei file più facili da leggere e non dovrai fare lo sforzo extra per gestire quegli spazi nei nomi dei file.