Come posso navigare tra le directory nel terminale?


26

Sono nuovo di Linux e Ubuntu e ho provato a cambiare cartella / directory con qualche difficoltà.

Qualcuno potrebbe spiegare perché i seguenti comandi non sono riusciti a passare alla cartella / directory di destinazione desiderata?

sharon@sharon:~$ cd Home 
bash: cd: Home: No such file or directory 
sharon@sharon:~$ cd /Home 
bash: cd: /Home: No such file or directory 
sharon@sharon:~$ cd Documents 
sharon@sharon:~/Documents$ cd Downloads 
bash: cd: Downloads: No such file or directory 
sharon@sharon:~/Documents$ cd /Downloads 
bash: cd: /Downloads: No such file or directory 
sharon@sharon:~/Documents$

Risposte:


38

Il filesystem è GNU / Linux è come un albero, tranne per il fatto che il root è in cima. :-) Quindi hai una struttura come:

/
  bin/
  home/
    sharon/
      Documents/
      Downloads/
      fileA.txt
      fileB.jpg
  usr/
  var/

Se vuoi muoverti all'interno dell'albero, un'opzione è usare i percorsi relativi. Se ci sei /home/sharon, la digitazione cd Downloadsfunzionerà, perché Download è un figlio immediato della tua directory corrente. Se ti trovi nella sottocartella Documentse vuoi cambiare directory ( cd) in Downloads, devi andare su ( ..) e poi su Downloads. Quindi il comando corretto sarebbe cd ../Downloads.

Puoi anche inserire un percorso assoluto. Quindi la Downloadscartella è una sottocartella di sharoncui è una sottocartella di homecui è ... (hai l'idea :-)) Quindi puoi anche entrare cd /home/sharon/Downloadsovunque ti trovi nel filesystem.

  • ~si riferisce sempre alla home directory dell'utente corrente ( /home/sharonnel tuo caso). Se entri cd ~/Downloads, atterrerai nella tua Downloadscartella.

  • .si riferisce alla directory corrente, quindi cd ./Downloadsè approssimativamente equivalente a cd Downloads.

  • .. significa "directory principale".

  • / all'inizio del percorso del file si riferisce alla directory principale.

La prossima cosa bella è l'espansione delle schede. Se si immette cd ~/DowTab(l'ultimo è premendo il tasto Tabulatore), il bash lo espande automaticamente cd ~/Downloads.

Come hanno detto gli altri, GNU / Linux fa distinzione tra maiuscole e minuscole. Quindi fai la differenza se entri Home, hOmeo home. Inoltre spero che tu veda ora che c'è una differenza tra /homee home. Il primo è indirizzato assoluto mentre l'ultimo è relativo alla directory corrente.


1
@ qbi: Wow, sei fantastico. Adoro la tua spiegazione dettagliata su come navigare tra le cartelle / directory. Sei un insegnante o un professore in un istituto di istruzione? La maggior parte dei ragazzi IT conoscono molte cose IT, ma suddividere i concetti in blocchi gestibili e "digeribili" in modo che i principianti possano capire è solo alla portata di una manciata ma dotati come te.
n00b,

2
@ n00b Se hai trovato utile questa risposta, puoi "accettarla" facendo clic sulla V alla sua sinistra.
Revetahw dice che ripristina Monica l'

8
sharon@sharon:~$ cd Home 
bash: cd: Home: No such file or directory 

La piccola cedilla ~ indica che sei già nella tua directory / home / sharon. Quando chiedi "cd Home" il terminale cerca / home / sharon / Home. Non c'è nessuno.

sharon@sharon:~$ cd /Home 
bash: cd: /Home: No such file or directory 

Ora stai chiedendo, data la barra iniziale, di andare in una directory sopra la posizione corrente; cioè / home / home. Non c'è nessuno.

sharon@sharon:~$ cd Documents 
sharon@sharon:~/Documents$

Successo!

sharon@sharon:~/Documents$ cd /Downloads 
bash: cd: /Downloads: No such file or directory 

Non sono troppo sicuro di dove sia esattamente questo. Se vuoi passare da / home / sharon / Documents a / home / sharon / download, prova:

cd ~/Downloads

Se vuoi andare direttamente alla tua home directory, ovvero / home / sharon, fai semplicemente:

cd

Inoltre puoi tornare indietro con

cd ..

E puoi stampare la directory con cui stai lavorando (stampa directory di lavoro)

pwd

@ chili555: Grazie mille per l'aiuto ai neofiti come me. Buon Natale a te e ai tuoi cari.
n00b,

2
La barra iniziale indica un percorso relativo alla radice, non uno sopra la directory corrente. Sarebbe../
psusi il

3

Il comando indica perché: non esiste una directory di questo tipo.

I nomi dei file sono sensibili al maiuscolo / minuscolo, quindi è / home, non / home. Senza una barra iniziale, si presume che sia relativo alla directory corrente e la directory Download non si trova in ~ / Documents, né in /, ma nella directory home, a cui ~è presente un collegamento, quindi è ~ / Documenti.


@ psusi: grazie anche a te. Buon Natale a te e ai tuoi cari.
n00b,

@ psusi: cosa significa la barra iniziale?
n00b,

@ psusi: cosa significa ./ <nomefile>?
n00b,

@noob, /significa iniziare dalla directory principale e .indica la directory corrente.
psusi,

0

Devo rispondere, perché non posso commentare le risposte -.-

Cosa significa la barra iniziale? - n00b

significa che il thin di cui stai parlando è una directory non un file. I file non devono avere una fine file come in Windows, quindi ~/thisIsAFilesarebbe un file nella tua home-directory ma ~/thisIsAFile/sarebbe una directory / una cartella.

Cosa significa? - n00b

Ciò significa che il file a cui si desidera accedere si trova nella directory corrente.

Altri consigli utili:

Puoi tornare indietro con una cartella

cd ..

E puoi ottenere il percorso in cui ti trovi (stampa directory di lavoro)

pwd

@ a2r: grazie per il chiarimento. Non sapevo che i file non abbiano estensioni come in Microsoft Windows. I programmi hanno estensioni di file anche su Ubuntu?
n00b,

In genere no, al sistema non importa quali finali ha un file, se è contrassegnato come eseguibile (google su chmod), è possibile eseguirlo come programma. Inoltre c'è una variabile globale (google a riguardo) chiamata $ PATH ci sono una vista delle directory salvate (puoi vedere con quali sono echo $PATH). E quando provi a eseguire un programma come quello che digiti geditnel terminale. Il tuo sistema sembra lanciare le cartelle in $ PATH e cerca gedit.
a2r

1
Sarebbe una barra finale, non una barra iniziale. Inoltre devi avere uno spazio lì dentro prima di ...
psusi,

@ psusi: scusa. Sono un po 'confuso qui. Che cos'è una barra finale? barra iniziale? Esempi per favore? Grazie in anticipo.
n00b,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.