Sida 1 av 1

att använda "cd" i terminalen

Postat: 12 nov 2007, 15:44
av mannealm
Hej. Vad är det för skillnad mellan exempelvis "cd ./etc" och "cd /etc", dvs vad betyder den där punkten innan "/"?

SV: att använda "cd" i terminalen

Postat: 12 nov 2007, 15:52
av mcNisse
. betyder den katalogen som du står i.

cd ./etc
Byter katalog till etc som finns i den katalogen som du står i dvs samma sak som cd etc.

cd /etc
Byter katalog till /etc

Dessa två kommandon ger samma resultat om du står i root katalogen och skriver dem.

SV: att använda "cd" i terminalen

Postat: 12 nov 2007, 16:58
av per9000
WTF !?!

Kod: Markera allt

>man cd
No manual entry for cd

>cd --help
bash: cd: --: invalid option
cd: usage: cd [-L|-P] [dir]
Klart IG.

Här finns lite dokumentation (men det står inget av intresse egentligen): http://www.opengroup.org/onlinepubs/009 ... es/cd.html
mcNisse skrev: . betyder den katalogen som du står i.

cd ./etc
Byter katalog till etc som finns i den katalogen som du står i dvs samma sak som cd etc.

cd /etc
Byter katalog till /etc

Dessa två kommandon ger samma resultat om du står i root katalogen och skriver dem.

Dessutom betyder två punkter efter varandra att man hänvisar till mamma-mapp.

Antag att dessa mappar finns:
  /tmp/baz/
  /tmp/fubar/
och att du står i /tmp

>cd fubar
# du står nu i /tmp/fubar/
# cd ./fubar hade gjort samma sak
# cd /tmp/fubar också

>cd ../baz
# du står nu i /tmp/baz/

> cd .
# du är kvar i /tmp/bax/

> cd ..
# du står nu i /tmp/

Är du osäker på vilken mapp du är i spottar "pwd" ur sig namnet på mappen du är i.

"cd" bara utan någonting tar dig till din home-katalog.

"cd -" tar dig till mappen du nyss var i

"chdir" är en synonym till cd (tror jag)

Kolla även in pushd och popd som kan vara bra ibland (man sida verkar saknas)
http://www.ss64.com/bash/pushd.html
http://www.ss64.com/bash/popd.html


/Per

SV: att använda "cd" i terminalen

Postat: 12 nov 2007, 17:03
av mcNisse
WTF !?!
Hehe, det där är lite (o)lustigt. cd är ett inbyggt kommando i skalet så det finns ingen mansida för det. Inte helt inuitivt så behöver man skriva man <det skal du kör> för att få reda på extra information.

SV: att använda "cd" i terminalen

Postat: 12 nov 2007, 22:31
av Konservburk
per9000 skrev: WTF !?!

Kod: Markera allt

>man cd
No manual entry for cd

>cd --help
bash: cd: --: invalid option
cd: usage: cd [-L|-P] [dir]
Klart IG.
mcNisse skrev: Hehe, det där är lite (o)lustigt. cd är ett inbyggt kommando i skalet så det finns ingen mansida för det. Inte helt inuitivt så behöver man skriva man <det skal du kör> för att få reda på extra information.
Med bash som skal så kan du skriva help cd om du inte orkar
rota igenom hela man bash.

SV: att använda "cd" i terminalen

Postat: 19 nov 2007, 00:59
av mannealm
mcNisse skrev: . betyder den katalogen som du står i.

cd ./etc
Byter katalog till etc som finns i den katalogen som du står i dvs samma sak som cd etc.

Så den där punkten är helt meningslös?

cd /etc
Byter katalog till /etc

Oavsett vilken katalog man står i? Eller funkar de bara om man redan befinner sig i rootkatalogen?


Dessa två kommandon ger samma resultat om du står i root katalogen och skriver dem.

Fast hur blir det om man står i en helt annan katalog?


SV: att använda "cd" i terminalen

Postat: 19 nov 2007, 09:15
av mcNisse
Dessa två kommandon ger samma resultat om du står i root katalogen och skriver dem.
Fast hur blir det om man står i en helt annan katalog?
Då blir resultatet inte det samma. Skillnaden ligger i att använda relativa och absoluta sökvägar.

När man använder sig av absoluta sökvägar kommer du alltid till katalogen du har skrivit in, tex /etc.
Använder du relativa sökvägar beror det på var du stär, tex ./etc eller etc.

SV: att använda "cd" i terminalen

Postat: 19 nov 2007, 14:02
av Konservburk
mannealm skrev:
mcNisse skrev: cd ./etc
Byter katalog till etc som finns i den katalogen som du står i dvs samma sak som cd etc.
Så den där punkten är helt meningslös?
Nej, punkten är inte meningslös.  Den ser till att du helt säkert får en relativ
sökväg, dvs relativt den nuvarande katalogen.

Om du t.ex. har en katalog som heter "-":

Kod: Markera allt

mkdir ./-
cd -        # här hamnar du i den föregånde katalogen och inte i ./-
cd -        # gå tillbaka
cd ./-      # och gör rätt
Om du har en variabel som heter CDPATH så kommer cd i första hand vara
relativt den om du inte anger "./":

Kod: Markera allt

CDPATH=/
mkdir ./etc
cd etc        # här hamnar du i /etc och inte i ./etc
cd -          # gå tillbaka
cd ./etc      # och gör rätt