touch (Unix)

A Wikipédiából, a szabad enciklopédiából

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.