Kommandoen echo "/some/directory/path" | xargs -n1 cd
virker ikke som forventet af flere grunde:
cd
er en indbygget kommando i shell (som bash eller zsh), og den ændrer kun det nuværende arbejdskatalog for den aktuelle shell-session. Når xargs
kører cd
, sker det i en separat subshell, og ændringen af arbejdskataloget påvirker ikke den oprindelige shell-session.xargs
til at køre en kommando, kører den kommandoen i en ny subshell. Ændringer foretaget i denne subshell, såsom at ændre arbejdskataloget med cd
, påvirker ikke den oprindelige shell-session.xargs -n1
betyder, at xargs
vil køre kommandoen én gang for hver linje af input. Men cd
tager kun ét argument, så det er ikke nødvendigt at bruge -n1
her.For at ændre det nuværende arbejdskatalog i den aktuelle shell-session, skal du bruge en anden tilgang. Her er nogle alternativer:
cd
direkte uden xargs
.
cd /some/directory/path
(cd /some/directory/path && other_commands)
pushd
og popd
.
pushd /some/directory/path
# Run your commands here
popd
Spar dig selv for besvær og kom igennem din to-do liste i dag
1
Beskriv din opgave
2
Modtag bud
3
Få løst din opgave
Møbelsamling
Hjælp med at samle Ikea klædeskab
Maler
Klargøring af lejlighed til flyttesyn
Flyttehjælp
Flytning af 150 kvm hus til Roskilde fra København
Havearbejde
Beskæring af 4 større træer
IT support
Geninstallering af windows + programmer
Elektriker
Installation af Sonos musikanlæg i hus
Rengøring
Ugentlig rengøring af lejlighed (114kvm)
Flyttehjælp
Flytning af 150 kvm hus til Roskilde fra København
Elektriker
Opsætning af lamper i stue og soveværelse
Catering
3-retters menu til 14 mennesker