cd(1p)

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

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:

  1. Om ingen katalog anges och miljövariabeln HOME är tom eller odefinierad, är standardbeteendet implementation-specifikt och inga ytterligare steg utförs.
  2. 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.
  3. Om katalogargumentet börjar med ett / (snedstreck), sätts curpath till argumentet och steget går direkt till steg 7.
  4. Om den första komponenten i katalogargumentet är . eller .., gå till steg 6.
  5. 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.
  6. Annars sätts curpath till katalogargumentet.
  7. Om flaggan -P används, hoppa till steg 10. Om curpath inte börjar med /, sammanfogas den med PWD (den nuvarande arbetskatalogen).
  8. 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.
  1. Om curpath är längre än {PATH_MAX}, kan den omvandlas till en relativ sökväg.
  2. 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:

The Open Group UNIX Online

Rapportera eventuella fel till:

Man-pages buggrapportering


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.