Fórum Root.cz

Hlavní témata => Server => Téma založeno: vana-hb 20. 04. 2015, 20:58:16

Název: Lomítka v adresářové cestě
Přispěvatel: vana-hb 20. 04. 2015, 20:58:16
Zdravím,
mám dotaz na nutnost-nenutnost psaní lomítek v cestě k adresáři. Pochopil jsem, že lomítko před cestou značí že cesta je z rootu a bez lomítka z aktuálního adresáře. Ale co lomítko za adresářem? Řekl bych, že příkaz funguje s nim i bez něho. Je nějaký doporučený způsob jestli psát a nebo ne?
Dík moc.

Jde mi třeba o příklad kde bych řekl, že funguje oboje
cd /etc/cron.d
cd /etc/cron.d/

cp -r /zalohy/* /mnt/disk
cp -r /zalohy/* /mnt/disk/

umount /mnt/disk
umount /mnt/disk/
Název: Re:Lomítka v adresářové cestě
Přispěvatel: Ondřej Novák 20. 04. 2015, 21:11:45
Jestli ti to udělá radost, tak ve většina programů, které jsem psal, lomítko na konci cesty značí, že cesta vede na adresář (složku), zatímco pokud tam lomítko chybí, jedná se o jméno souboru. Má to vliv na odvozování například relativní cesty. Ale jestli to je stejný případ tady?

Název: Re:Lomítka v adresářové cestě
Přispěvatel: Peter 20. 04. 2015, 21:36:01
Človek si veľmi jednoducho uvedomí načo slúži lomítko na konci cesty ak napríklad triedi fotky a cieľ (adresár, folder) kam ich presúva neexistuje. Vytvorí sa z poslednej fotky, a ostatné sa stratia. Ak by tam to lomítko bolo a cieľ by neexistoval, tak presun zlyhá a nič sa nestratí.
Název: Re:Lomítka v adresářové cestě
Přispěvatel: Kit 20. 04. 2015, 21:46:13
Jednou jsem tam to lomítko na konec nedal. Nebyl to adresář, ale symbolický link na něj. Nadělalo mi to slušnou paseku a od té doby si to hlídám.
Název: Re:Lomítka v adresářové cestě
Přispěvatel: nobody 20. 04. 2015, 22:25:13
vyznam psat lomitko je tehdy pokud se muze jednat o soubor nebo adresar a chces to jasne rict ze jde o adresar

# netreba, protoze "cd do souboru" nelze
cd /etc/cron.d

# neni sice nutne, ale rozhodne vhodne, jak pise Peter, pri neexistenci ciloveho adresare se zauvazuje jako cilovy soubor
cp -r /zalohy/* /mnt/disk/

# netreba, neodpojujes adresar, ale mountpoint (pripadne jmeno zarizeni, jmeno image...)
umount /mnt/disk
umount /dev/disk

dalsi priklad treba u rsync

# bez / by v kam byl adresar odkud
rsync /odkud /kam

# v kam by byl rovnou obsah adresar odkud
rsync /odkud/* /kam

priklad rm
# smazani obsahu adresare neco i vcetne neco
rm -R /nekde/neco

# smazani pouze obsahu adresare neco
rm -R /nekde/neco/*
Název: Re:Lomítka v adresářové cestě
Přispěvatel: Honza1Ubuntu 21. 04. 2015, 19:05:29
Lomitka na konci jsou potreba zejmena pri psani velych skriptu. Uz nekolikrat jsem si neco takto smazal, nebo neco v rozsahlem bash skriptu nefungovalo. Vetsinou to funguje i bez neich, problem ale nastava v jiz zminenych pripadech a ze jich je.
Název: Re:Lomítka v adresářové cestě
Přispěvatel: vana-hb 21. 04. 2015, 19:22:41
# neni sice nutne, ale rozhodne vhodne, jak pise Peter, pri neexistenci ciloveho adresare se zauvazuje jako cilovy soubor
cp -r /zalohy/* /mnt/disk/

# bez / by v kam byl adresar odkud
rsync /odkud /kam

# v kam by byl rovnou obsah adresar odkud
rsync /odkud/* /kam
A němelo by být lomítko za /kam (tedy /kam/) v příkladu s rsynch?? Přijde mi to podobný případ jako to cp. D
Název: Re:Lomítka v adresářové cestě
Přispěvatel: nobody 21. 04. 2015, 21:37:32
logicky ano, ale neni potreba, rsync narozdil od cp (nebo mv) bere cil vzdy jako adresar a pokud neexistuje tak ho vytvori(je jedno jestli cil konci nebo nekonci lomitkem)...

vyjimka je pouze pokud zdroj = 1 soubor, pak se jako cil zauvazuje soubor a zdrojovy soubor se prejmenuje na cil, pokud by zdroj byl 1 soubor a cil byl zakoncen lomitkem, vytvori se adresar a do nej se syncne zdroj o puvodnim nazvu...