touch — kreiranje praznog fajla i menjanje vremenskih oznaka

Komanda radi dve stvari: pravi prazan fajl ako ne postoji, a ako postoji — osvežava mu vremenske oznake. Ime dolazi od te druge, originalne namene: „dodirni fajl, ali ga ne menjaj".

$ touch beleske.txt
$ ls -l beleske.txt
-rw-r--r-- 1 alen alen 0 Aug 22 14:23 beleske.txt

Fajl je prazan — nula bajtova.

Svakodnevna upotreba

$ touch fajl1.txt fajl2.txt fajl3.txt
$ touch log-{01..05}.txt
$ touch ~/projekat/README.md

Vitičaste zagrade u drugom redu su prečica koju proširuje shell, objašnjena u lekciji Džokeri i navodnici.

Direktorijum se ne pravi sam:

$ touch novi/fajl.txt
touch: cannot touch 'novi/fajl.txt': No such file or directory

$ mkdir -p novi && touch novi/fajl.txt

Osvežavanje vremena

$ ls -l staro.txt
-rw-r--r-- 1 alen alen 1024 Jan 15 09:00 staro.txt

$ touch staro.txt
$ ls -l staro.txt
-rw-r--r-- 1 alen alen 1024 Aug 22 14:30 staro.txt

Sadržaj je netaknut, promenjeno je samo vreme. Ovo je korisnije nego što zvuči — alati poput make, rsync i backup skripti odlučuju na osnovu vremena izmene, pa se sa touch može naterati ponovna obrada fajla koji se zapravo nije menjao.

Tri vremena, dva se mogu menjati

$ stat beleske.txt
Access: 2026-08-22 14:35:02
Modify: 2026-08-22 14:30:11
Change: 2026-08-22 14:30:11
  • Modify — kad je poslednji put menjan sadržaj. To je vreme koje prikazuje ls -l.
  • Access — kad je poslednji put čitan.
  • Change — kad je poslednji put menjan inode: dozvole, vlasnik, ime. Ovo touch ne može podesiti — svaka izmena ga automatski osvežava.
$ touch -m fajl.txt        # samo modify
$ touch -a fajl.txt        # samo access

Određeno vreme

$ touch -d "2026-01-15 09:00" fajl.txt
$ touch -d "yesterday" fajl.txt
$ touch -d "2 hours ago" fajl.txt
$ touch -t 202601150900 fajl.txt

Oblik -t je GGGGMMDDhhmm.

Preuzimanje vremena sa drugog fajla

$ touch -r original.txt kopija.txt

Korisno kad si fajl obradio pa hoćeš da mu vratiš originalno vreme.

Zastavice koje se retko koriste, ali vrede

$ touch -c mozda-postoji.txt

-c osvežava vreme samo ako fajl postoji, a ne pravi ga. Zgodno u skriptama.

$ touch -h simbolicki-link

Bez -h se osvežava fajl na koji link pokazuje, ne sam link.

Praktični primeri

Pronalaženje po vremenu

$ touch -d "7 days ago" /tmp/granica
$ find /var/log -newer /tmp/granica

Sve što je menjano u poslednjih sedam dana. Više na stranici find.

Kontrolni fajl

$ touch /var/run/backup.lock

Skripta pravi fajl na početku i briše ga na kraju; ako fajl postoji, posao je već u toku. Prost način da se cron poslovi ne preklope — vidi cron.

Test dozvola

$ touch /var/www/test
touch: cannot touch '/var/www/test': Permission denied

Najbrža provera da li negde smeš da pišeš.

Šta touch ne radi

Ne prazni postojeći fajl. To je najčešća zabuna:

$ touch aplikacija.log     # log ostaje pun
$ > aplikacija.log         # ovo ga prazni
$ truncate -s 0 aplikacija.log

Zašto se log prazni ovako, a ne komandom rm, objašnjeno je u lekciji Inode-ovi i linkovi.

Ne pravi fajl sa sadržajem. Za to:

$ echo "prvi red" > fajl.txt

Kratka referenca

  • touch fajl — napravi prazan ili osveži vreme
  • touch f1 f2 f3 — više odjednom
  • touch -c fajl — ne pravi ako ne postoji
  • touch -m / -a — samo modify / access
  • touch -d "yesterday" fajl — određeno vreme
  • touch -t 202601150900 fajl — vreme u brojčanom obliku
  • touch -r izvor cilj — preuzmi vreme sa drugog fajla
  • stat fajl — prikaži sva tri vremena

Vežba

  1. Napravi pet fajlova jednom komandom, sa imenima test-01 do test-05.
  2. Postavi jednom od njih vreme izmene na prošlu godinu i proveri sa ls -l.
  3. Napravi fajl sa sadržajem, pa mu osveži vreme i potvrdi da je sadržaj ostao.
  4. Pronađi sve fajlove u kućnom direktorijumu izmenjene u poslednja dva dana, koristeći touch i find.

Pravljenje direktorijuma je na stranici mkdir, kog je tipa neki fajl kaže file, a pregled cele oblasti je na stranici Rad sa fajlovima i direktorijumima.

Cela lekcija je deo vodiča Linux osnove.

Comments

Popular posts from this blog

Početak u Linuxu — šta je i zašto se uči

Konverzija tipova podataka u Pythonu

groupadd