Portál AbcLinuxu, 9. května 2025 19:07

Dotaz: [BASH] načtení názvu adresáře

7.11.2011 16:18 mr.biker
[BASH] načtení názvu adresáře
Přečteno: 307×
Odpovědět | Admin
Potřeboval bych poradit jak pojmenovávat ve scriptu archivy podle složek příklad:
adresář /home/admin/test a vněm sou podadresáře:test1 test2 test3
jak nacist do promenene nebo souboru ten nazev te podslozky?
dis udelam napr:
cd /home/admin/test/test1
pwd > test.txt tak v nem bude /home/admin/test/test1 ale ja chci aby tam bylo pouze test1
dik

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

martin-ux avatar 7.11.2011 16:36 martin-ux | skóre: 18 | Bratislava
Rozbalit Rozbalit vše Re: [BASH] načtení názvu adresáře
Odpovědět | | Sbalit | Link | Blokovat | Admin
jedna z moznosti je:
# export FULLPATH="/my/full/path"
# echo ${FULLPATH##*/}
path
#
Problem ti moze nastat, ak by bola cesta "/my/full/path/". Vtedy sa mozes este hrat na osetrenie so sedom (zahodit posledne lomitko).

Da sa pouzit aj basename(1), ten ale tiez v niektorych pripadoch zlyhava (nie je prenosny medzi UXami).
..when you do things right, people won't be sure you've done anything at all..
7.11.2011 16:44 l4m4
Rozbalit Rozbalit vše Re: [BASH] načtení názvu adresáře
Je-li už k disposici GNU bash, nemusel by být s GNU coreutils takový problém (samozřejmě s výjimkou systémů, kde zrovna náhodou jedno je, druhé není a nelze doinstalovat).
martin-ux avatar 7.11.2011 21:09 martin-ux | skóre: 18 | Bratislava
Rozbalit Rozbalit vše Re: [BASH] načtení názvu adresáře
skoda, ze si neviem spomenut na pripad, kedy basename zlyhal (a ktory OS to bol)..

inak ja osobne sa priklanam k shellovskemu rieseniu ( modifikacii retazca pomocou ${}) - je to prenosne a nie je to bashizmus (i ked to autor uvadzal).
..when you do things right, people won't be sure you've done anything at all..
7.11.2011 23:20 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: [BASH] načtení názvu adresáře
basename není bashismus, je to normální utilita/příkaz a je definována
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
martin-ux avatar 7.11.2011 23:26 martin-ux | skóre: 18 | Bratislava
Rozbalit Rozbalit vše Re: [BASH] načtení názvu adresáře
to je v poriadku, ja som ani nehovoril, ze je.
..when you do things right, people won't be sure you've done anything at all..
8.11.2011 11:39 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: [BASH] načtení názvu adresáře
Sorry - špatně jsem si to vyložil.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
pepe_ avatar 7.11.2011 17:08 pepe_ | skóre: 48
Rozbalit Rozbalit vše Re: [BASH] načtení názvu adresáře
Odpovědět | | Sbalit | Link | Blokovat | Admin

Nevim jestli je to správně ale používam :

 

#!/bin/bash
path="$(dirname $(readlink -f $*))"
prg=$(echo $* | awk -F'/' '{print $NF}')

 

 

ani sem netestoval zda-li to funguje korektně nebo to nepublikuju

Řešení 1× (mr.biker)
7.11.2011 18:17 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: [BASH] načtení názvu adresáře
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nebál bych se basename: Založeno na pwd
basename $(pwd)
nebo-li
basename $(pwd) > 'test.txt'
Jestli jsem to tedy dobře pochopil…
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
7.11.2011 21:41 mr.biker
Rozbalit Rozbalit vše Re: [BASH] načtení názvu adresáře
Díkes

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.