Použití test -e soubor na link

Použití test -e soubor na link
« kdy: 26. 03. 2013, 14:48:08 »
Dobrý den.

Ladím shell skript a konečně jsem přišel na chybu. Chtěl bych se ale zeptat, zda mi můžete někdo dát tip, jak elegantně řešit můj problém:

Jde o to, že jsem si naivně myslel (po přečtění man stránky), že:
Kód: [Vybrat]
test -e souborotestuje, zda cesta 'soubor' existuje a že je úplně jedno, jakého je soubor typu (file, dir, device, link, atd). Jaké bylo moje překvapení, když jsem zjistil, že pokud je 'soubor' symbolický link, tak test selže.

Můžete mi někdo poradit, jak otestovat, že soubor s danou cestou existuje nezávisle na jeho typu a to elegantněji než udělat OR z postupného testování na všechny typy?

Myslíte, že:
Kód: [Vybrat]
test -e soubor || test -h soubormůže být už konečné řešení?

Díky..
« Poslední změna: 26. 03. 2013, 20:21:23 od Petr Krčmář »


Re:test -e soubor
« Odpověď #1 kdy: 26. 03. 2013, 14:56:34 »
Omlouvám se za zbytečné téma. Problém vyřešen.
Kód: [Vybrat]
test -e symlinkselže pokud symlink ukazuje na neexistující soubor a to dává dobrý smysl.
Berte téma za uzavřené. ;]

monitor

Re:test -e soubor
« Odpověď #2 kdy: 26. 03. 2013, 15:42:29 »
A co tak skusit:
ls
alebo stat?
V kombinacii s testovanim navratovej hodnoty... $?

monitor

Re:test -e soubor
« Odpověď #3 kdy: 26. 03. 2013, 15:45:21 »
Inak, samozrejme, to spravanie je v
man test
zdokumentovane:

"Except  for  -h  and  -L, all FILE-related tests dereference symbolic links. "

Re:test -e soubor
« Odpověď #4 kdy: 26. 03. 2013, 17:10:16 »
Inak, samozrejme, to spravanie je v
man test
zdokumentovane:

"Except  for  -h  and  -L, all FILE-related tests dereference symbolic links. "

Jojo, až dole. Tam jsem asi nikdy u testu nedošel :) Vždycky jsem čerpal jen z toho, co je u -e.