Podmínky pro práci se soubory - MujMAC.cz - Apple, Mac OS X, Apple iPod

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Seriály

Více seriálů



Software

Podmínky pro práci se soubory

1. srpna 2002, 00.00 | Minule jsme si ukázali základní podmínkové příkazy, využívané jako součást příkazu if. Dnes si doplníme několik dalších podmínek, jež umožňují bohatou a pohodlnou práci se soubory.

Minule jsme si ukázali základní podmínkové příkazy, využívané jako součást příkazu if. Dnes si doplníme několik dalších podmínek, jež umožňují bohatou a pohodlnou práci se soubory.

"Souborové" podmínky mají všechny stejný formát, podobný unárnímu operátoru -z pro ověření, zda je textový řetězec neprázdný:

 [[ -podmínka soubor ]]

Mezi nejčastěji používané podmínky patří:

  • -f, ověření existence běžného souboru;
  • -d, ověření existence složky;
  • -h, ověření existence (soft)linku;
  • -r, ověření čitelnosti souboru;
  • -w, ověření možnosti měnit obsah souboru;
  • -x, ověření spustitelnosti souboru;
  • -s, ověření neprázdnosti souboru;
  • -O, ověření zda jsem vlastníkem souboru.

První tři podmínky ověří, zda zadaný objekt existuje, a zda je požadovaného typu:

 1 ~> if [[ -f /mach_kernel ]] then echo OK ; fi
 OK
 2 ~> if [[ -d /tmp ]] then echo OK ; fi
 OK
 3 ~> if [[ -h /tmp ]] then echo OK ; fi
 OK
 4 ~> 

Snad nejtypičtějším využitím je ověření, zda existuje složka, do které chceme ve skriptu ukládat nějaké soubory.

Další trojice podmínek přesně odpovídá nám už dávno známým třem bitům rwx z přístupových práv:

 8 ~> ls -l /mach_kernel
 -rw-r--r--  1 root  wheel  3152396 Oct 30  2001 /mach_kernel
 9 ~> if [[ -r /mach_kernel ]] then echo OK ; else echo Nene ; fi
 OK
 10 ~> if [[ -w /mach_kernel ]] then echo OK ; else echo Nene ; fi
 Nene
 11 ~> if [[ -x /mach_kernel ]] then echo OK ; else echo Nene ; fi
 Nene
 12 ~> 

Předposlední podmínka umožní snadno ověřit, zda je délka souboru nulová nebo ne (neexistující soubor se přitom logicky považuje také za soubor s "nulovou délkou"):

 22 /tmp> ls foo
 ls: foo: No such file or directory
 23 /tmp> if [[ -s foo ]] then echo Neco tam je ; else echo prazdny ; fi
 prazdny
 24 /tmp> touch foo
 25 /tmp> if [[ -s foo ]] then echo Neco tam je ; else echo prazdny ; fi
 prazdny
 26 /tmp> echo "Foo" > foo
 27 /tmp> if [[ -s foo ]] then echo Neco tam je ; else echo prazdny ; fi
 Neco tam je
 28 /tmp> 

Poslední z podmínek pak zjistí, zda ten, kdo příkaz if volal (tj. uživatel, který spustil daný skript) je nebo není vlastníkem souboru:

 28 /tmp> if [[ -O foo ]] then echo Muj ; else echo Cizi ; fi
 Muj
 29 /tmp> if [[ -O /mach_kernel ]] then echo Muj ; else echo Cizi ; fi
 Cizi
 30 /tmp> su
 Password:
 1 /tmp# if [[ -O foo ]] then echo Muj ; else echo Cizi ; fi
 Cizi
 2 /tmp# if [[ -O /mach_kernel ]] then echo Muj ; else echo Cizi ; fi
 Muj
 3 /tmp# 

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Software  

 

 

 

Nejčtenější články
Nejlépe hodnocené články
Apple kurzy

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: