cd(1p): Skillnad mellan sidversioner
Admin (diskussion | bidrag) |
Admin (diskussion | bidrag) |
||
(4 mellanliggande sidversioner av samma användare visas inte) | |||
Rad 1: | Rad 1: | ||
= cd(1p) = | = cd(1p) – Linux manual sida = | ||
== | == Prolog == | ||
Denna manualsida är en del av | Denna manualsida är en del av POSIX-programmerarens manual. Linux-implementeringen av detta gränssnitt kan skilja sig åt (konsultera motsvarande Linux-manualsida för detaljer om Linux-beteende), eller så kanske gränssnittet inte är implementerat på Linux. | ||
Linux-implementeringen av detta gränssnitt kan skilja sig ( | |||
== | == Namn == | ||
'''cd''' | '''cd''' – ändra arbetskatalog | ||
== | == Synopsis == | ||
<pre> | |||
cd [-L|-P] [katalog] | |||
cd - | |||
</pre> | |||
== Beskrivning == | |||
Verktyget '''cd''' ska ändra arbetskatalogen i den aktuella shell-exekveringsmiljön genom att utföra följande steg i ordning: | |||
# Om ingen katalog anges och miljövariabeln '''HOME''' är tom eller odefinierad, är standardbeteendet implementation-specifikt och inga ytterligare steg utförs. | |||
# Om ingen katalog anges och '''HOME''' är satt till ett värde, ska '''cd''' bete sig som om katalogen angiven i '''HOME''' användes som katalogargument. | |||
# Om katalogargumentet börjar med ett '''/''' (snedstreck), sätts '''curpath''' till argumentet och steget går direkt till steg 7. | |||
# Om den första komponenten i katalogargumentet är '''.''' eller '''..''', gå till steg 6. | |||
# Om '''CDPATH''' är satt, testas varje angiven sökväg i '''CDPATH''' för att hitta den angivna katalogen. Om en match hittas, används den. | |||
# Annars sätts '''curpath''' till katalogargumentet. | |||
# Om flaggan '''-P''' används, hoppa till steg 10. Om '''curpath''' inte börjar med '''/''', sammanfogas den med '''PWD''' (den nuvarande arbetskatalogen). | |||
# '''curpath''' omvandlas till en kanonisk form: | |||
* '''.''' tas bort. | |||
* '''..''' tas bort tillsammans med föregående katalog i sökvägen. | |||
* Flera snedstreck '''//''' reduceras till ett enda. | |||
# Om '''curpath''' är längre än '''{PATH_MAX}''', kan den omvandlas till en relativ sökväg. | |||
# '''cd''' anropar '''chdir(curpath)''', vilket ändrar arbetskatalogen. Om detta misslyckas, visas ett felmeddelande. | |||
Om | Om '''PWD''' är satt, kommer '''OLDPWD''' att sättas till den tidigare arbetskatalogen. | ||
== | == Flaggor == | ||
'''-L''' | * '''-L''' – Behandla '''..''' logiskt utan att lösa symboliska länkar. | ||
* '''-P''' – Behandla '''..''' fysiskt genom att lösa symboliska länkar. | |||
Om båda flaggorna anges, används den sist nämnda. | |||
== Operander == | |||
* '''katalog''' – En absolut eller relativ sökväg till den nya arbetskatalogen. | |||
* '''-''' – Växlar till den senaste arbetskatalogen och skriver ut dess namn. | |||
== | == Standard inmatning == | ||
Ej använd. | |||
== Indatafiler == | |||
Ingen. | |||
== | == Miljövariabler == | ||
Följande miljövariabler påverkar exekveringen av '''cd''': | |||
* '''CDPATH''' – En kolonseparerad lista med kataloger att söka i när en relativ sökväg används. | |||
* '''HOME''' – Standardkatalogen om inget argument anges. | |||
* '''PWD''' – Den aktuella arbetskatalogen. | |||
* '''OLDPWD''' – Den tidigare arbetskatalogen. | |||
* '''LANG''' – Ger ett standardvärde för lokalinställningar. | |||
* '''LC_ALL''' – Om denna variabel är satt, åsidosätter den alla andra lokalinställningar. | |||
* '''LC_CTYPE''' – Bestämmer hur textdata tolkas, exempelvis enbyte- eller flerbyte-tecken. | |||
* '''LC_MESSAGES''' – Bestämmer format och innehåll i felmeddelanden. | |||
* '''NLSPATH''' – Bestämmer platsen för lokaliserade meddelandekataloger. | |||
== | == Asynkrona händelser == | ||
Standard. | |||
== Standardutdata == | |||
Om en katalog från '''CDPATH''' används eller om `cd -` används, skrivs den absoluta sökvägen till standardutdata: | |||
<pre> | |||
"%s\n", <ny katalog> | |||
</pre> | |||
I andra fall skrivs ingen utdata. | |||
== Standardfel == | |||
Används endast för diagnostiska meddelanden. | |||
== | == Utdatafiler == | ||
Ingen. | |||
== | == Utökad beskrivning == | ||
Ingen. | |||
== | == Avslutningsstatus == | ||
Följande utgångsvärden används: | |||
* '''0''' – Katalogen ändrades framgångsrikt. | |||
* 0 – | * '''>0''' – Ett fel uppstod. | ||
* >0 – Ett fel | |||
== | == Konsekvenser av fel == | ||
Arbetskatalogen förblir oförändrad. | Arbetskatalogen förblir oförändrad. | ||
== | == Användning i applikationer == | ||
Eftersom '''cd''' påverkar den aktuella shell-miljön, tillhandahålls det alltid som ett inbyggt shell-kommando. Om det anropas i en separat exekveringsmiljö, exempelvis: | |||
Om | |||
<pre> | |||
(cd /tmp) | |||
nohup cd | |||
find . -exec cd {} \; | |||
</pre> | |||
påverkar det inte arbetskatalogen i det omgivande skalet. | |||
Användaren måste ha exekveringsrättigheter i katalogen för att kunna byta till den. | |||
cd katalog | |||
== Exempel == | |||
Byta till en katalog och sedan tillbaka: | |||
<pre> | |||
cd /tmp | |||
cd - | |||
</pre> | |||
Om katalogen inte finns, skriv ut ett felmeddelande: | |||
<pre> | |||
cd /okänd/katalog | |||
if [ $? -ne 0 ]; then | if [ $? -ne 0 ]; then | ||
echo "Fel: | echo "Fel: katalogen existerar inte." | ||
exit 1 | exit 1 | ||
fi | fi | ||
... | </pre> | ||
== Rationellt == | |||
* '''CDPATH''' introducerades i System V-shellen och fungerar likt variabeln '''PATH''' för kommandosökning. | |||
* Vissa äldre shells (t.ex. KornShell) hanterade `..` logiskt, medan andra använde en strikt fysisk tolkning. | |||
* Det logiska läget är nu standard. | |||
== Framtida riktningar == | |||
Inga. | |||
== | == Se även == | ||
** | * [[pwd(1p)]] – Visar den nuvarande arbetskatalogen. | ||
* [[sh(1p)]] – POSIX-kompatibelt shell. | |||
* POSIX-standarden [[chdir(3p)]]. | |||
== Upphovsrätt == | |||
Denna sida innehåller material från IEEE Std 1003.1-2017, Standard för Informationsteknik – Portable Operating System Interface (POSIX). För den officiella versionen, se: | |||
[https://www.opengroup.org/unix/online.html The Open Group UNIX Online] | |||
Rapportera eventuella fel till: | |||
[https://www.kernel.org/doc/man-pages/reporting_bugs.html Man-pages buggrapportering] | |||
= Sidslut = | = Sidslut = |
Nuvarande version från 4 mars 2025 kl. 07.44
cd(1p) – Linux manual sida
Prolog
Denna manualsida är en del av POSIX-programmerarens manual. Linux-implementeringen av detta gränssnitt kan skilja sig åt (konsultera motsvarande Linux-manualsida för detaljer om Linux-beteende), eller så kanske gränssnittet inte är implementerat på Linux.
Namn
cd – ändra arbetskatalog
Synopsis
cd [-L|-P] [katalog] cd -
Beskrivning
Verktyget cd ska ändra arbetskatalogen i den aktuella shell-exekveringsmiljön genom att utföra följande steg i ordning:
- Om ingen katalog anges och miljövariabeln HOME är tom eller odefinierad, är standardbeteendet implementation-specifikt och inga ytterligare steg utförs.
- Om ingen katalog anges och HOME är satt till ett värde, ska cd bete sig som om katalogen angiven i HOME användes som katalogargument.
- Om katalogargumentet börjar med ett / (snedstreck), sätts curpath till argumentet och steget går direkt till steg 7.
- Om den första komponenten i katalogargumentet är . eller .., gå till steg 6.
- Om CDPATH är satt, testas varje angiven sökväg i CDPATH för att hitta den angivna katalogen. Om en match hittas, används den.
- Annars sätts curpath till katalogargumentet.
- Om flaggan -P används, hoppa till steg 10. Om curpath inte börjar med /, sammanfogas den med PWD (den nuvarande arbetskatalogen).
- curpath omvandlas till en kanonisk form:
- . tas bort.
- .. tas bort tillsammans med föregående katalog i sökvägen.
- Flera snedstreck // reduceras till ett enda.
- Om curpath är längre än {PATH_MAX}, kan den omvandlas till en relativ sökväg.
- cd anropar chdir(curpath), vilket ändrar arbetskatalogen. Om detta misslyckas, visas ett felmeddelande.
Om PWD är satt, kommer OLDPWD att sättas till den tidigare arbetskatalogen.
Flaggor
- -L – Behandla .. logiskt utan att lösa symboliska länkar.
- -P – Behandla .. fysiskt genom att lösa symboliska länkar.
Om båda flaggorna anges, används den sist nämnda.
Operander
- katalog – En absolut eller relativ sökväg till den nya arbetskatalogen.
- - – Växlar till den senaste arbetskatalogen och skriver ut dess namn.
Standard inmatning
Ej använd.
Indatafiler
Ingen.
Miljövariabler
Följande miljövariabler påverkar exekveringen av cd:
- CDPATH – En kolonseparerad lista med kataloger att söka i när en relativ sökväg används.
- HOME – Standardkatalogen om inget argument anges.
- PWD – Den aktuella arbetskatalogen.
- OLDPWD – Den tidigare arbetskatalogen.
- LANG – Ger ett standardvärde för lokalinställningar.
- LC_ALL – Om denna variabel är satt, åsidosätter den alla andra lokalinställningar.
- LC_CTYPE – Bestämmer hur textdata tolkas, exempelvis enbyte- eller flerbyte-tecken.
- LC_MESSAGES – Bestämmer format och innehåll i felmeddelanden.
- NLSPATH – Bestämmer platsen för lokaliserade meddelandekataloger.
Asynkrona händelser
Standard.
Standardutdata
Om en katalog från CDPATH används eller om `cd -` används, skrivs den absoluta sökvägen till standardutdata:
"%s\n", <ny katalog>
I andra fall skrivs ingen utdata.
Standardfel
Används endast för diagnostiska meddelanden.
Utdatafiler
Ingen.
Utökad beskrivning
Ingen.
Avslutningsstatus
Följande utgångsvärden används:
- 0 – Katalogen ändrades framgångsrikt.
- >0 – Ett fel uppstod.
Konsekvenser av fel
Arbetskatalogen förblir oförändrad.
Användning i applikationer
Eftersom cd påverkar den aktuella shell-miljön, tillhandahålls det alltid som ett inbyggt shell-kommando. Om det anropas i en separat exekveringsmiljö, exempelvis:
(cd /tmp) nohup cd find . -exec cd {} \;
påverkar det inte arbetskatalogen i det omgivande skalet.
Användaren måste ha exekveringsrättigheter i katalogen för att kunna byta till den.
Exempel
Byta till en katalog och sedan tillbaka:
cd /tmp cd -
Om katalogen inte finns, skriv ut ett felmeddelande:
cd /okänd/katalog if [ $? -ne 0 ]; then echo "Fel: katalogen existerar inte." exit 1 fi
Rationellt
- CDPATH introducerades i System V-shellen och fungerar likt variabeln PATH för kommandosökning.
- Vissa äldre shells (t.ex. KornShell) hanterade `..` logiskt, medan andra använde en strikt fysisk tolkning.
- Det logiska läget är nu standard.
Framtida riktningar
Inga.
Se även
- pwd(1p) – Visar den nuvarande arbetskatalogen.
- sh(1p) – POSIX-kompatibelt shell.
- POSIX-standarden chdir(3p).
Upphovsrätt
Denna sida innehåller material från IEEE Std 1003.1-2017, Standard för Informationsteknik – Portable Operating System Interface (POSIX). För den officiella versionen, se:
Rapportera eventuella fel till:
Sidslut
Orginalhemsidan på Engelska :https://man7.org/linux/man-pages/man1/cd.1p.html
Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
Tack till Datorhjälp som har sponsrat Linux.se med webbhotell.