Premiär! Fyndchans i SweClockers Månadens Drop
Permalänk
Medlem

bash command

Sitter och testar bash skript.

Det jag vill är att när jag kör mittscript.sh
som lägger den till en rad i en fil specifik fil.

ex.

echo "Hej, detta är en ny rad" >> home/testfolder/fil.txt
eller chmod 755 testfolder/fil.txt

men om jag befinner mig i user/home/testfolder och vill köra ett kommando där en fil ändras på en underkatalog oavsett vilken användare det är . Hur gör jag då ?
Jag vill kunna köra skriptet från ett ställe och jag vill att den ändrar i en mapp ovanför mig och i en mapp under mig ?
För att den ska ändra filer ovanför mig så är det bara att skriva sökvägen dit men hur skriver jag ifall den behöver backa och gå in i en annan map först ?

ex ändra fil i medan mittscript.sh körs från ex home/testfolder
home/testfolder/files/fil.txt
home/zipfolder/files/fil.txt

H

Visa signatur

K4 Jägare är härliga människor. Varför får inte rika människor bli rikare. Ja till EMU
We live for the one, we die for the one'
(Loggar man inte ut får man en extra rad i sin signatur :-) /VaCUm)

Permalänk
Medlem

Lite svårt att förstå vad det är du är ute efter, men är det .. du letar efter? .. hänvisar till katalogen ovanför i filhierarkin därifrån man för tillfället är. Så om du är i /home/testfolder så kan du gå in i /home/zipfolder genom att gå till ../zipfolder.

Permalänk
Inaktiv

echo "hej" >> ../fil

Alltså ../../../../ du backar med ../

Permalänk
Hedersmedlem

Snabbgenomgång av de ganska få saker som man behöver kunna utantill för att navigera fritt i dessa system

  • / är katalogavgränsare på *nix-system.

Det finns två typer av sökvägar:

  • En sökväg som börjar med / betecknar en absolut sökväg. Detta första / betecknar roten av filsystemet, så exempelvis /home/nisse pekar på nisse, som ligger i katalogen home, som ligger i roten.

  • En sökväg som inte börjar med / är en relativ sökväg. Den ges relativt den katalog i vilken du står för tillfället.

Det finns två "speciella kataloger":

  • . ("punkt") betecknar den katalog du redan pekar på. /home/./nisse pekar alltså på samma sak som /home/nisse, då punkten i ovanstående exempel kommer peka på samma katalog som den "ovanför", dvs /home.

    Det kan låta märkligt att man vill kunna göra detta, men du kommer säkert se meningen med detta vad det lider.

  • .. ("punkt punkt") pekar på katalogen ovanför den du pekar på just nu. Om du står i katalogen /home/nisse och skriver ls .. så kommer du alltså lista filerna i katalogen /home.

    Från samma position (/home/nisse) skulle ls ../bosse lista filerna i "en katalog upp från /home/nisse (dvs /home), sedan ner i bosse", dvs /home/bosse.

    Notera att .. kan kedjas, så /home/nisse/../../home/bosse/../nisse är bara ett oerhört jobbigt sätt att skriva /home/nisse.

Om du testar ls -a (lista alla filer, inklusive dolda filer (dvs de som startar med en punkt)) i vilken katalog som helst på systemet så kommer du se att alla kataloger innehåller en katalog . och en katalog ... Om du skapar en ny tom katalog så kommer den likförbaskat från första stund innehålla dessa. De är en inbyggd konvention.

Därutöver finns exempelvis katalogen ~ som alltid pekar på den nuvarande användarens hemkatalog, dvs för användare nisse betyder ~ typiskt /home/nisse; för användare bosse betyder det typiskt /home/bosse, osv.

Har du full pejl på ovanstående saker så har du rätt bra pejl på kataloghantering i *nix överhuvudtaget — det blir inte mycket krångligare. Se till att skillnaden mellan absoluta och relativa sökvägar är glasklar, och känn till de speciella "katalogerna" . och .. så är du hemma (dvs i ~ ).

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem

@anon176726:
Det var detta jag sökte. Tack

Visa signatur

K4 Jägare är härliga människor. Varför får inte rika människor bli rikare. Ja till EMU
We live for the one, we die for the one'
(Loggar man inte ut får man en extra rad i sin signatur :-) /VaCUm)

Permalänk
Medlem
Skrivet av phz:

Snabbgenomgång av de ganska få saker som man behöver kunna utantill för att navigera fritt i dessa system

  • / är katalogavgränsare på *nix-system.

Det finns två typer av sökvägar:

  • En sökväg som börjar med / betecknar en absolut sökväg. Detta första / betecknar roten av filsystemet, så exempelvis /home/nisse pekar på nisse, som ligger i katalogen home, som ligger i roten.

  • En sökväg som inte börjar med / är en relativ sökväg. Den ges relativt den katalog i vilken du står för tillfället.

Det finns två "speciella kataloger":

  • . ("punkt") betecknar den katalog du redan pekar på. /home/./nisse pekar alltså på samma sak som /home/nisse, då punkten i ovanstående exempel kommer peka på samma katalog som den "ovanför", dvs /home.

    Det kan låta märkligt att man vill kunna göra detta, men du kommer säkert se meningen med detta vad det lider.

  • .. ("punkt punkt") pekar på katalogen ovanför den du pekar på just nu. Om du står i katalogen /home/nisse och skriver ls .. så kommer du alltså lista filerna i katalogen /home.

    Från samma position (/home/nisse) skulle ls ../bosse lista filerna i "en katalog upp från /home/nisse (dvs /home), sedan ner i bosse", dvs /home/bosse.

    Notera att .. kan kedjas, så /home/nisse/../../home/bosse/../nisse är bara ett oerhört jobbigt sätt att skriva /home/nisse.

Om du testar ls -a (lista alla filer, inklusive dolda filer (dvs de som startar med en punkt)) i vilken katalog som helst på systemet så kommer du se att alla kataloger innehåller en katalog . och en katalog ... Om du skapar en ny tom katalog så kommer den likförbaskat från första stund innehålla dessa. De är en inbyggd konvention.

Därutöver finns exempelvis katalogen ~ som alltid pekar på den nuvarande användarens hemkatalog, dvs för användare nisse betyder ~ typiskt /home/nisse; för användare bosse betyder det typiskt /home/bosse, osv.

Har du full pejl på ovanstående saker så har du rätt bra pejl på kataloghantering i *nix överhuvudtaget — det blir inte mycket krångligare. Se till att skillnaden mellan absoluta och relativa sökvägar är glasklar, och känn till de speciella "katalogerna" . och .. så är du hemma (dvs i ~ ).

Mycket bra info ,tack.

Visa signatur

K4 Jägare är härliga människor. Varför får inte rika människor bli rikare. Ja till EMU
We live for the one, we die for the one'
(Loggar man inte ut får man en extra rad i sin signatur :-) /VaCUm)