Usando la sh
shell (no bash
), quale comando in Linux / UNIX stampa la mia directory corrente?
$ *showmewhereiam*
/sys/kernel/debug
$
unix whereami
Usando la sh
shell (no bash
), quale comando in Linux / UNIX stampa la mia directory corrente?
$ *showmewhereiam*
/sys/kernel/debug
$
unix whereami
Risposte:
Prova pwd
.
$ pwd
/home/<username>
/dev
riguardasse lo sviluppo (codici sorgente o qualcosa del genere)
Mentre la risposta generale è pwd
, nota che ciò può dare risultati diversi a seconda di come hai raggiunto una determinata directory e se il percorso includeva collegamenti simbolici.
Ad esempio, se hai una directory chiamata real
e un link simbolico a quella directory chiamato virtual
, e tu cd
alla virtual
directory, allora pwd
mostrerai quel virtual
nome di directory, anche se la directory attuale in cui ti trovi real
.
Per mostrare la directory sottostante reale, utilizzare pwd -P
o readlink -f
(per un percorso arbitrario):
$ mkdir real $ ln -s virtual reale $ cd virtuale $ pwd / home / nome utente / tmp / virtual $ pwd -P / home / nome utente / tmp / real $ readlink -f. / home / nome utente / tmp / real
Si noti che le shell sostituiscono spesso il pwd
comando con la propria versione interna, quindi sul mio sistema (RHEL6), anche se la pwd(1)
pagina del manuale suggerisce che --physical
funzionerà così come -P
, poiché sono in esecuzione bash
, non:
$ pwd - fisico bash: pwd: -: opzione non valida pwd: use: pwd [-LP] $ / bin / pwd - fisico / home / nome utente / tmp / real $ / usr / bin / env pwd --physical / home / nome utente / tmp / real
Come altri hanno detto, di pwd
solito fa abbastanza bene il lavoro. Tuttavia, vorrei aggiungere un'idea che mi ha aiutato.
Su tutte le shell oggi in uso comune, è possibile personalizzare l'aspetto del prompt dei comandi. Mi piace personalizzare il mio in modo che mi mostri sia il nome del computer su cui mi trovo sia la mia directory di lavoro. In questo modo, so sempre dove sono. (La parte del nome del computer mi aiuta a capire se la finestra del terminale che sto usando è stata utilizzata per SSH in un server remoto.) Ad esempio, quando apro una nuova finestra del terminale sul mio laptop, che chiamo Plastico, vedo questo:
Plastico ~> cd Desktop/
Plastico ~/Desktop> cd ~/Sites/raygunrobot.com
Plastico ~/Sites/raygunrobot.com> cd /usr
Plastico /usr>
Puoi vedere che sta abbreviando la mia home directory come ~
. Trovo che farlo per i miei messaggi terminali sia incredibilmente utile: so sempre a colpo d'occhio esattamente dove sono, anche più di quanto farei guardando una finestra del Finder.
Su tcsh, lo faccio aggiungendo set prompt = 'Plastico %~%# '
al mio file .tcshrc nella mia directory home. L'ho fatto anche su ksh aggiungendo export PS1="Plastico $PWD $ "
al mio file .profile. Ma essendo un utente Linux, probabilmente usi Bash, di cui non ho molta esperienza (sono un tipo strano). Ma sembra che potrei essere in grado di farlo aggiungendo PS1="Plastico \w $ "
al mio file .bashrc.
Modifica: ho appena notato gli stati OP che ti interessano a sh, non a bash. Oh bene; spero che la gente lo trovi utile a prescindere.
Plastico /var/www/vhosts/myveryexcellentwebsite.com/public_html/wp-content/themes/myveryexcellenttheme/js/vendor/excellentjs/ >
o qualcosa del genere.
$ pwd
/your/current/directory
$
pwd
proviene dalla directory di lavoro della stampa .
Nome
pwd - stampa il nome della directory corrente / di lavoro
Sinossi
pwd [OPZIONE] ...
Descrizione
Stampa il nome file completo della directory di lavoro corrente.
-L , --logico
usa PWD dall'ambiente, anche se contiene collegamenti simbolici
-P , - fisico
evitare tutti i collegamenti simbolici
--Aiuto
visualizza questo aiuto ed esce
--versione
informazioni sulla versione di output ed uscita
NOTA: la tua shell potrebbe avere la sua versione di pwd, che di solito sostituisce la versione qui descritta. Per i dettagli sulle opzioni supportate, consultare la documentazione della shell.
(...)