touch (Unix)
A touch egy standard Unix parancs, mely egy fájl időbélyegének megváltoztatására szolgál.
Történet
[szerkesztés]A touch parancs az AT&T UNIX 7. verziójában jelent meg, szerzői: Paul Rubin, Arnold Robbins, Jim Kingdon, David MacKenzie és Sunil Sharma.
Leírása
[szerkesztés]A touch megváltoztatja minden megadott fájl utolsó elérésének és/vagy utolsó módosításának idejét. Ezek az időbélyegek az aktuális időre változnak, hacsak nem adtuk meg az -r opciót, ez esetben ugyanis a megadott ref_fájl időbélyegét kapja meg a fájl, illetve ha a -t opciót adtuk meg, akkor az időbélyeg a idő ben megadott időre változik. Mindkét idő változik, ha az -a és a -m opciókat egyaránt megadtuk, vagy egyiket sem adtuk meg. Csak az utolsó elérés illetve az utolsó módosítás ideje változik, ha az -a illetve a -m opciókat egymagukban adjuk meg. Ha a fájl nem létezik, a touch létrehozza (üres fájlként, 0666 jogusultságokkal, amelyeket az umask módosíthat), kivéve ha a -c opciót is megadtuk.
Használata
[szerkesztés]A parancs általános alakja:
touch [-acm][-r ref_fájl |-t idő ] fájl...
Elavulófélben levő verzió:
touch [-acm][ ronda_idő ] fájl...
GNU verzió:
touch [-acfm] [-r fájl ] [-t decim_idő ] [-d idő ] [--time={atime,access,use,mtime,modify}] [--date= idő ] [--reference= fájl ] [--no-create] [--help] [--version] [--] fájl...
POSIX opciók
[szerkesztés]- -a
A fájl utolsó elérésének idejét változtatja.
- -c
Nem hozza létre a fájl t.
- -m
A fájl utolsó módosításának idejét változtatja.
- -r ref_fájl
A ref_fájl időbélyegeit használja az időbélyegek új értékeinek beállításához.
- -t idő
A megadott időt használja az időbélyegek új értékeinek beállításához. Az argumentum egy decimális szám, a következő formában:
[[CC]YY]MMDDhhmm[.SS]
ahol CC a századot, YY az évet, MM a hónapot, DD a napot, hh az órát, mm a percet és SS a másodpercet jelenti. Ha nem adjuk meg a századot, akkor a CCYY évet veszi a program figyelembe, ahol 1969 < CCYY < 2068. Ha nem adjuk meg a YY évet, akkor az aktuális év lesz az idő év része. Ha nem adjuk meg az SS-t, akkor az értéke 0 lesz. Az SS értékét a 0-61 tartományból választhatjuk, így lehetőség van a szökőmásodpercek megadására. A program TZ környezeti változóban megadott időzónában fogja a megadott időt venni. Hibát okoz, ha az idő 1970. január 1. előtti.
POSIX részletek
[szerkesztés]A hívás második formájának megvan az a hátránya, hogy van némi értelmezési probléma akörül, hogy az ronda_idő idő- vagy fájlargumentum. A program akkor tekinteni időnek, ha sem az -r sem a -t opciók nincsenek megadva, legalább két argumentum van, és az első argumentum nyolc- vagy tízjegyű decimális szám. Az ronda_idő formátuma MMDDhhmm[yy], ahol az yy 69 és 99 közé eshet, és az 1969-1999 éveket jelöli. Ha nem adjuk meg a yy-t, akkor az aktuális évet veszi a program. Ez a formátum elavult.
GNU részletek
[szerkesztés]Ha az első fájl érvényes argumentuma lehet a -t opciónak, és nem adtunk meg időbélyeget a -d , az -r illetve a -t opciók egyikéhez sem, és a `--' argumentumot sem adtuk meg, akkor ezt az argumentumot időnek fogja értelmezni a program, nem fájlnévnek.
Ha valaki az utolsó elérés és az utolsó módosítás idejét egyaránt az aktuális időre szeretné változtatni, a touch olyan fájlok időbélyegét is képes megváltoztatni, amelyek nincsenek az adott felhasználó birtokában, de van rá írási joga. Egyébként a felhasználónak kell birtokolnia a fájlokat.
GNU opciók
[szerkesztés]- -a, --time=atime, --time=access, --time=use
Csak az utolsó elérés idejét változtatja meg.
- -c, --no-create
Nem hozza létre a fájlokat, ha nem léteznek.
- -d, --date= idő
Az idő argumentumot használja az aktuális idő helyett. Ebben lehetnek hónapnevek, időzóna, `am= vagy `pm', stb.
- -f
Figyelmen kívül hagyja, csak a touch (1) BSD verziójával való kompatibilitás miatt van implementálva.
- -m, --time=mtime, --time=modify
Csak az utolsó módosítás idejét változtatja meg.
- -r fájl , --reference= fájl
Az megadott fájl időbélyegeit használja az aktuális idő helyett.
- -t decim_idő
Itt a decim_idő formátuma MMDDhhmm[[CC]YY][.ss]
Az argumentumban megadott időt (hónap, nap, óra, perc, elhagyható század és év, elhagyható másodperc) használja az aktuális idő helyett. Jegyezzük meg, hogy ez a formátum megsérti a POSIX előírásait.
Szabványos GNU opciók
[szerkesztés]- --help
Használati útmutatót ír a standard kimenetre, majd sikeres visszatérési értékkel kilép.
- --version
A program verziójáról ír ki információt a standard kimenetre, majd sikeres visszatérési értékkel kilép.
- --
Lezárja az opciók listáját.