В Linux всеки отделен файл е свързан с времеви отпечатъци и всеки файл съхранява информацията за последно време на достъп, време на последна модификация и време на последна промяна. Така всеки път, когато създаваме нов файл и осъществяваме достъп или модифицираме съществуващ файл, времевите марки на този файл се актуализират автоматично.
Важно е да отбележим каква е разликата между времето на модификация (modification time) и времето на промяна (change time).
Времето на модификация: е времето, когато съдържанието на файла е било последно модифицирано. Например, използвали сте редактор, за да добавите ново съдържание или да изтриете съществуващо съдържание.
Времето за промяна: е времето, когато inode на файла е променен. Например чрез промяна на разрешения, собственост, име на файл, брой твърди връзки.
В тази статия ще разгледаме някои полезни практически примери за touch команди в Linux. Преди да се насочим към примерите, ще разгледаме следните флагове:
-a, промяна на времето за достъп (access time)
-m, промяна на времето за модификация (modification time)
-c, ако файлът не съществува, не го създавай
-t, използва специфично време, вместо текущото време
-r, използвай времената на този файл, вместо текущото време
-h промяна на времето за символни връзки (symbolic links)
--help, показване на помощното меню
--version, показва версията на командата
1. Как да създадем файл
Следната команда ще създаде празен файл с името file.txt.
$ touch file.txt
2. Как да създадем няколко файла
С помощта на touch командата, могат да бъдат създадени няколко файла наведнъж.
$ touch create.txt multiple.txt files.txt
За създаването на множество файлове можете да използвате и следната команда:
$ touch file{1..3}.txt
Ще бъдат създадени три файла file1.txt, file2.txt и file3.txt.
3. Промяна на времето за достъп (access time)
За да промените или актуализирате времето за достъп, използвайте опцията -a. Ако файлът не съществува, ще бъде създаден нов празен файл с името.
$ touch -a file1.txt
4. Промяна на времето за модификация (modification time)
Ако искате да промените единствено времето за модификация на файла, тогава използвайте опцията -m. Имайте предвид, че това ще актуализира само последните времена на модификация (не времената за достъп) на файла.
$ touch -m file1.txt
5. Промяна на времето за достъп и модификация
За да промените както времето за достъп, така и времето за модификация, използвайте заедно флаговете -am.
$ touch -am file1.txt
6. Промяна на времевия отпечатък на symbolic link
Когато използвате символно свързано име на файл с командата touch, информацията за времевия печат на оригиналния файл, който е посочен от symbolic link-а, се променя. За да промените времето за достъп и модифициране с текущото време използвайте опцията -h:
$ touch -h file4.txt
7. Изрично зададено време за достъп и модификация
Можете изрично да зададете дата на достъп и промяна, като използвате опцията -c и -t. Форматът ще бъде както следва:
$ touch -c -t CCYYMMDDhhmm.ss file1.txt (месец/ден/час/минути)
- CC – първите две цифри на годината
- YY – вторите две цифри на годината
- MM – месеца (01-12)
- DD – деня (01-31)
- hh – часа (00-23)
- mm – минутите (00-59)
- ss – секундите (00-59)
8. Използване на времевия отпечатък на друг файл
Следната команда ще актуализира времевия отпечатък на файла file1.txt, с времевия отпечатък на файла file2.txt. Така и двата файла ще бъдат с едни и същи показатели.
$ touch -r file2.txt file1.txt
9. Промяна на датата като стринг
Можете също да посочите датата и часа като стринг, като използвате опцията -d.
$ touch -d "1 Jan" file1.txt
$ touch -d "2 days ago 12:00" file1.txt
$ touch -d 11am file1.txt
В заключение, командата touch е проста, но мощна програма, която може да се използва за създаване, модифициране и актуализиране на файлове в Linux.
Това е инструмент от командния ред, който е лесен за използване и може да ви спести много време при работа с файлове.
Независимо дали искате да създадете нов файл, да промените времевия отпечатък на съществуващ файл или да актуализирате съдържанието на файл, командата "touch" е идеалният инструмент за работата.