Qual è il nome completo del percorso?

19

Mi piacerebbe capire cosa significhi veramente il nome completo del percorso. Ho un file nella mia home directory chiamato my_script. Ho assunto che il nome completo del percorso sia ./my_script, il che significa che si trova nella cartella principale, ma non ne sono sicuro. Qualcuno può per favore illuminarmi su questo?

    
posta sosytee 26.08.2013 - 15:11

5 risposte

21

No, la tua ipotesi è sbagliata. Il nome completo del percorso per il file my_script dalla tua directory home è: /home/your_user_name/my_script . Quando digiti ./my_script nel terminale, provi effettivamente a eseguire lo script (se è eseguibile) e verrà eseguito solo se la tua directory di lavoro corrente è /home/your_user_name/ . Per eseguire lo script puoi usare anche il percorso completo del file che è, come ho detto /home/your_user_name/my_script .

Si ritiene che un nome di percorso UNIX assomigli e sembri un indirizzo Internet, risultando quindi compatibile. Il nome completo del percorso della directory di lavoro corrente può essere trovato nel terminale usando il seguente comando:

pwd

Per scoprire il percorso completo della directory home dell'utente, puoi utilizzare:

echo ~
echo $HOME
echo /home/$USER

I tre comandi precedenti sono equivalenti.

Per trovare il nome completo del percorso di un file, puoi utilizzare il comando readlink . Ad esempio, nel tuo caso:

cd ~
readlink -f my_script
    
risposta data Radu Rădeanu 26.08.2013 - 16:46
6

Nome percorso completo indica realmente il percorso completo di quel file o cartella dalla directory / del file system.

Ad esempio, il percorso completo per il tuo script è:

/home/your_username/my_script

Oppure, il nome completo del percorso dell'eseguibile grep è

/bin/grep

Come per ./my_script , il simbolo . sta per la directory corrente, quindi dici "Guarda sotto la directory corrente per un file o una cartella di nome my_script"

    
risposta data hytromo 26.08.2013 - 15:16
3

Per capire il percorso completo, devi prima conoscere il punto di partenza.

La directory root / è il punto di partenza dei sistemi operativi basati su * nix. Contiene tutte le altre directory sia di sistema che di utente.

Directory principale dell'utente /home/USERNAME/ o ~/ in breve, contiene i file e le directory dell'utente. Ad esempio, Immagini, Musica, Documenti, ecc. Ognuna di queste directory viene referenziata come /home/USERNAME/DIRECTORY ad esempio Documenti si trova a /home/USERNAME/Documents .

Come con le directory, i file sono referenziati allo stesso modo, per esempio un file chiamato my_script situato nella directory home dell'utente sosytee può essere referenziato usando il percorso completo /home/sosytee/my_script o ~/my_script per short .

Sia i file che le directory possono essere referenziati / accessibili usando i loro percorsi completi da ogni parte del sistema. Inoltre, è possibile accedervi utilizzando solo il loro nome se si trova nella stessa directory. Ad esempio se l'utente è a ~/ quando usa il terminale, può accedere al file my_script usando solo my_script .

Inoltre si può accedere a directory e file usando solo il loro nome, se sono posizionati nella sua variabile PATH. Puoi vedere cosa è memorizzato in PATH usando echo $PATH .

Semplici esempi su come accedere ai file usando la riga di comando:

  • L'utente è attualmente a /home/USERNAME/ e desidera utilizzare il comando cat su un file situato in /home/USERNAME/Documents denominato foo.txt:

cat Documents/foo.txt

  • L'utente si trova all'interno di ~/Documents e desidera eseguire uno script denominato foo.sh situato ad ~/Scripts/Foo :

    sh ../Scripts/Foo/foo.sh

    o

    sh ~/Scripts/Foo/foo.sh

in ogni caso questo è solo un riassunto.

Ulteriori informazioni

risposta data Stef K 26.08.2013 - 15:42
2

Il nome completo del percorso è il percorso dalla directory principale (ad es. / ). ./my_script è il nome del percorso relativo, poiché il percorso è dato relativamente alla directory corrente, che è denotata da . . Quindi se sei nella tua directory home il percorso completo è s.th. come /home/sosytee/my_script . Per la tua home directory c'è il "short-cut" ~ , il che significa che puoi anche scrivere ~/my_script . Ma questo ovviamente si risolverà in un percorso diverso per ogni utente.

Per visualizzare il percorso completo della tua chiamata alla directory corrente pwd .

    
risposta data Nodebody 26.08.2013 - 15:17
2
  

Ho assunto che il nome completo del percorso sia ./my_script

No, non lo è. Quel percorso è relativo. Il punto all'inizio indica la directory corrente:

$ ls ./my_script
my_script
$ cd ..
$ ls ./my_script
ls: cannot access ./my_script: No such file or directory

Come puoi vedere, ho modificato la directory e my_script non è stato trovato, il che significa che ./my_script non è un percorso assoluto.

  

Ho assunto che il nome completo del percorso sia ./my_script, il che significa che si trova nella cartella principale, ma non ne sono sicuro.

Da Wikipedia :

  

[...] Un percorso completo o percorso assoluto è un percorso che punta alla stessa posizione su un unico file system indipendentemente dalla directory di lavoro o dai percorsi combinati.

Dato che ./my_script non riempie la condizione che ogni volta che sono posso trovare il file my_script , dovremmo dedurre che è un percorso relativo.

  

Un percorso relativo è un percorso relativo alla directory di lavoro dell'utente o dell'applicazione, quindi non sarà necessario fornire il percorso assoluto completo.

    
risposta data Braiam 27.08.2013 - 19:12

Leggi altre domande sui tag