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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

  • -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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

  • -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 | forrásszöveg szerkesztése]

  • --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.