Welk commando in de Linux/UNIX sh shell geeft mijn huidige directory terug?
Welk commando in Linux/UNIX, gebruikmakend van de sh
shell (niet bash
), print mijn huidige directory uit?
$ *showmewhereiam*
/sys/kernel/debug
$
Welk commando in Linux/UNIX, gebruikmakend van de sh
shell (niet bash
), print mijn huidige directory uit?
$ *showmewhereiam*
/sys/kernel/debug
$
Probeer pwd
.
$ pwd
/home/<username>
Het algemene antwoord is pwd
, maar merk op dat dit verschillende resultaten kan geven, afhankelijk van hoe je een bepaalde map bereikt hebt, en of de route symbolische links bevatte.
Bijvoorbeeld, als je een map hebt die real
heet en een symbolische link naar die map die virtual
heet, en je cd
naar de virtual
map, dan zal pwd
die virtual
mapnaam laten zien, ook al is de echte map waar je in zit real
.
Om de echte onderliggende directory te tonen, gebruik je pwd -P
of readlink -f
(voor een willekeurig pad):
$ mkdir real $ ln -s real virtual $ cd virtual $ pwd /home/_username_/tmp/virtual $ pwd -P /home/_username_/tmp/real $ readlink -f . /home/_username_/tmp/real
Merk op dat shells vaak het pwd
commando vervangen door hun eigen interne versie, dus op mijn systeem (RHEL6), ook al suggereert de pwd(1)
manual pagina dat --physical
net zo goed zal werken als -P
, omdat ik bash
draai, doet het dat niet:
$ pwd --physical bash: pwd: --: invalid option pwd: usage: pwd [-LP] $ /bin/pwd --physical /home/_username_/tmp/real $ /usr/bin/env pwd --physical /home/_username_/tmp/real
$ pwd
/your/current/directory
$
pwd
komt uit de print werkdirectory.
Naam
pwd - naam van huidige/werkdirectory afdrukken
Synopsis
pwd [OPTION]…
Beschrijving
Druk de volledige bestandsnaam van de huidige werkdirectory af.
-L , –logisch
gebruik PWD van omgeving, ook als die symlinks bevat
-P , –physical
vermijd alle symlinks
–help
toon deze help en verlaat
–version
uitvoer versie-informatie en verlaat
OPMERKING: uw shell kan zijn eigen versie van pwd hebben, die gewoonlijk de hier beschreven versie vervangt. Raadpleeg de documentatie van uw shell voor details over de opties die hij ondersteunt.
(…)
Zoals anderen al zeiden, pwd
doet het werk meestal goed genoeg. Ik wil echter een idee toevoegen dat mij geholpen heeft.
Op alle shells die tegenwoordig veel gebruikt worden, kun je het uiterlijk van de opdrachtprompt aanpassen. Ik pas de mijne graag zo aan dat hij zowel de naam van de computer waar ik op zit als mijn werkdirectory laat zien. Op die manier weet ik altijd waar ik ben. (Het computer naam deel helpt me te realiseren of het terminal venster dat ik gebruik is gebruikt om te SSH-en op een server op afstand). Bijvoorbeeld, als ik een nieuw terminal venster open op mijn laptop, die ik Plastico noem, dan zie ik dit:
Plastico ~> cd Desktop/
Plastico ~/Desktop> cd ~/Sites/raygunrobot.com
Plastico ~/Sites/raygunrobot.com> cd /usr
Plastico /usr>
Je kunt zien dat het mijn home directory afkort als ~
. Ik vind het ongelooflijk handig om dit te doen voor mijn terminal prompts - ik weet altijd in een oogopslag precies waar ik ben, zelfs meer dan wanneer ik in een Finder venster zou kijken.
Op tcsh doe ik dit door set prompt = 'Plastico %~%# '
toe te voegen aan mijn .tcshrc bestand in mijn home directory. Ik heb het ook met ksh gedaan door export PS1="Plastico $PWD $ "
aan mijn .profile bestand toe te voegen. Maar omdat je een Linux gebruiker bent, gebruik je waarschijnlijk Bash, waar ik niet veel ervaring mee heb (ik ben zo'n mafkees). Maar het lijkt erop ik zou het kunnen doen door PS1="Plastico \w $ "
aan mijn .bashrc bestand toe te voegen.
Edit: Ik zie net dat de OP zegt dat je geïnteresseerd bent in sh, niet in bash. Oh wel; hoop dat mensen dit hoe dan ook nuttig vinden.