Команда touch в Linux

Команда touch позволяет обновлять временные метки в существующих файлах и каталогах, а также создавать новые пустые файлы.

В этом руководстве мы покажем вам, как использовать сенсорную команду, на практических примерах и подробных объяснениях наиболее распространенных параметров команд.

Метки времени файлов Linux

Прежде чем перейти к использованию сенсорной команды, давайте начнем с обзора временных меток файлов в Linux.

Файл в Linux имеет три отметки времени:

  • atime (время доступа) — время последнего доступа / открытия файла какой-либо командой или приложением, например cat , vim или grep .
  • mtime (время изменения) — время последнего изменения содержимого файла.
  • ctime (время изменения) — время последнего изменения атрибута или содержимого файла. Атрибут включает права доступа к файлу, право собственности на файл или местонахождение файла.

Чтобы отобразить статус файла, включая временные метки, используйте команду stat .

stat file_name

Для создания нового файла требуются права на запись в родительский каталог. В противном случае вы получите сообщение об ошибке в разрешении отказано.

Как использовать сенсорную команду

В простейшей форме при использовании без каких-либо опций, если имя файла, указанное в качестве аргумента, не существует, touch создаст новый файл.

Если файл уже существует, коснитесь, чтобы изменить время последнего доступа и модификации файла на текущее время.

Например, если файл file1 не существует, следующая команда создаст его, иначе она изменит его временные метки:

touch file1

Чтобы создать или изменить несколько файлов одновременно, укажите имена файлов в качестве аргументов:

touch file1 file2 file3

Если вы не хотите, чтобы команда touch создавала новые файлы, используйте параметр -c ( --no-create ).

Например, если существует файл file1 следующая команда изменит временные метки файла, в противном случае она ничего не сделает:

touch -c file1

Изменение только времени доступа или модификации

По умолчанию, если параметр не используется, прикосновение обновит время последнего доступа к файлу и времени изменения до текущего времени. Используя параметры -a и -m , вы можете изменить только одну из этих временных меток.

Меняем только время доступа

Используйте параметр -a чтобы изменить только время доступа к файлу:

touch -a file1

Измените только время изменения

Используйте параметр -m чтобы изменить время изменения файла:

touch -m file1

При изменении времени изменения время изменения также будет обновлено.

Установка конкретных отметок времени

Сенсорная команда также позволяет нам обновлять или создавать файл с определенным временем, отличным от текущего времени.

Используйте параметр -d ( --date= ), чтобы указать строку даты и использовать ее вместо текущего времени.

Например, чтобы изменить время последнего доступа и модификации file1 на 1 июня 2018 11:02, вы должны использовать следующую команду:

touch -d '1 June 2018 11:02' file1

Строку даты необходимо заключить в одинарные кавычки.

Вы также можете указать частичную строку даты и времени для сенсорной команды. Предоставляя только дату, автоматически меняет год на текущий:

touch -d '12 June' file1

Используйте параметр -t чтобы указать отметку времени и использовать ее вместо текущего времени. Аргумент отметки времени должен быть в следующем формате:

use [[CC]YY]MMDDhhmm[.ss]

Например, следующая команда установит время последнего доступа и модификации file1 на 1 июня 11:02 текущего года.

touch -t 06011102 file1

Использование метки времени другого файла

Параметр -r ( --reference= ) позволяет нам указать справочный файл и использовать его временные метки вместо текущего времени.

Например, следующая команда скажет touch использовать время file1 для file2 :

touch -r file1 file2

Изменение метки времени символической ссылки

По умолчанию, если вы используете сенсорную команду для символической ссылки, она изменяет временные метки файла, на который она указывает.

Используйте -h ( --no-dereference ), чтобы изменить метку времени символической ссылки.

Например, чтобы изменить временные метки символической ссылки symlink1 вы должны использовать:

touch -h symlink1

Выводы

К настоящему времени вы должны хорошо понимать, как использовать сенсорную команду Linux.

Оставьте комментарий