GNU/Linux >> Linux Esercitazione >  >> Linux

Percorso assoluto vs relativo in Linux:qual è la differenza?

Il percorso è uno dei concetti più essenziali in Linux e questo è qualcosa che ogni utente Linux deve sapere.

Un percorso è il modo in cui si fa riferimento a file e directory. Fornisce la posizione di un file o di una directory nella struttura delle directory di Linux. È composto da un nome e da una sintassi barra.

/home/abhishek/scripts

Come utente, dovrai utilizzare il percorso quando desideri accedere a un determinato file o directory o quando devi assegnare la posizione di un file o di una directory a un comando o uno script.

cat /home/abhishek/scripts/my_script.sh

Ricorda, se il percorso inizia con una barra "/", la prima barra indica radice. Il resto delle barre nel percorso sono solo separatori. I principianti spesso si confondono tra la barra della radice e le barre del separatore.

Nel diagramma sopra, hai il primo percorso che inizia con la barra della radice. C'è un altro percorso che non inizia con / (cioè root).

Sono corretti entrambi. Il primo è il percorso assoluto e il secondo è il percorso relativo. Diamo un'occhiata in dettaglio.

Percorso assoluto e relativo in Linux

Il percorso Absolute inizia sempre dalla directory principale (/). Ad esempio, /home/abhishek/scripts/my_scripts.sh.

Un percorso relativo inizia dalla directory corrente. Ad esempio, se sei nella directory /home e vuoi accedere a my_scripts.sh file, puoi utilizzare abhishek/scripts/my_scripts.sh .

Capire la differenza tra cammini assoluti e relativi

Sai che la struttura delle directory in Linux assomiglia alla radice di un albero. Tutto inizia alla radice e da lì si dirama.

Ora immagina di essere nella directory abhishek e vuoi accedere a my_scripts.sh file.

Il percorso assoluto è rappresentato nella linea tratteggiata verde e il percorso relativo è rappresentato nelle linee tratteggiate gialle.

Supponiamo di voler vedere le proprietà del file my_script.sh usando il comando ls.

Puoi usare il percorso assoluto che inizia con la directory principale (/):

ls -l /home/abhishek/scripts/my_script.sh

Oppure puoi usare il percorso relativo (che parte dalla directory corrente, non da /):

ls -l scripts/my_script.sh

Entrambi i comandi produrranno lo stesso risultato (tranne il percorso del file).

In Linux, i nomi dei file fanno distinzione tra maiuscole e minuscole e possono avere lettere maiuscole, minuscole, numeri, punti, trattini, trattini bassi e la maggior parte dei simboli tranne la barra (/). La barra (/) è riservata per root e per separare le directory nel percorso.

Utilizzo del percorso relativo con . e .. directory

Lascia che ti mostri un altro esempio per spiegare la differenza tra percorso assoluto e percorso relativo. Ma prima dovresti conoscere due percorsi relativi speciali:

  • . (punto singolo) indica la directory corrente nel percorso.
  • .. (due punti) indica la directory principale, ovvero un livello sopra.

Le cose saranno chiare tra un momento. Dai un'occhiata allo scenario. In questo, vuoi andare nella directory prakash dalla directory abhishek .

Puoi usare il comando cd per cambiare directory. Il percorso assoluto è abbastanza evidente qui:

cd /home/prakash

Per utilizzare il percorso relativo, dovrai utilizzare lo speciale percorso relativo:

cd ../prakash

Perché usare ..? Perché un percorso relativo richiede la direzione dalla directory corrente e devi dire al comando cd di salire di livello prima di scendere. Il .. ti porta a /home directory e da lì vai al prakash directory.

Spero che ora le cose siano molto più chiare.

Il percorso assoluto inizia sempre con root (/) e rimarrà lo stesso indipendentemente dalla tua posizione attuale. Il percorso relativo dipende dalla tua posizione attuale.

Quale dovresti usare? Percorso relativo o percorso assoluto?

Ad essere onesti, non esiste una risposta univoca a questa domanda. Dipende molto dalla situazione.

Se sei in fondo alla gerarchia delle directory e devi spostare un livello in alto o in basso, usare il percorso relativo sarà più semplice.

Supponiamo di essere nella directory /home/username/programming/project/interface/src/header e di dover accedere a qualcosa nella directory /home/username/programming/project/interface/bin. L'uso del percorso relativo ti salverebbe dalla digitazione di tutti quei lunghi nomi di directory e puoi semplicemente usare ../../bin qui.

Ma se devi accedere a qualcosa nella directory /usr/bin dalla directory /home/username/programming/project/interface/src/header, usando qualcosa come ../../../../../. ./usr/bin non sarà una cosa saggia da fare. Usare il percorso assoluto è la cosa sensata da fare in questo caso.

Un altro caso è l'utilizzo dei percorsi negli script o nei programmi. Quando sei sicuro della posizione, usa il percorso assoluto. Se il tuo progetto ha diverse cartelle e ti viene richiesto di passare da una directory all'altra, puoi usare il percorso relativo qui perché non lo fai dove l'utente finale copierà tutti i file del progetto, nella home directory o in qualche directory dev.

In altre parole, dovresti conoscere entrambi i metodi e utilizzare quello che sarà più semplice in base al tuo scenario.

Spero che tu abbia una migliore comprensione del percorso e della navigazione in Linux ora. Se hai domande o suggerimenti, lascia un commento.


Linux
  1. Linux vs. Unix:qual è la differenza?

  2. Elenca i file in modo ricorsivo nella CLI di Linux con il percorso relativo alla directory corrente

  3. Qual è la differenza tra "trova" e "trova" in Linux?

  4. Qual è l'equivalente di Active Directory su Linux

  5. Qual è la differenza tra Unix, Linux, BSD e GNU?

Qual è la differenza tra Linux e Unix?

Qual è la differenza tra Rsync e BTRFS in Linux?

iptables vs nftables:qual è la differenza?

Percorso assoluto vs relativo in Linux:qual è la differenza?

Qual è il comando kill in Linux?

Linux:aggiungi una directory a PATH