Touch commands in linux

Использование команды touch в Linux

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

Используем команду touch в Linux

Для использования команды touch в Linux потребуется изучить ее синтаксис и понять принципы ввода. С этим не должно возникнуть никаких проблем, поскольку сама утилита довольно проста, а с доступными опциями можно разобраться буквально за несколько минут. Давайте как раз и начнем с этого.

Синтаксис

Обратим внимание на стандартный вид строки при вводе команды touch. Она выглядит так: touch + [Опции] + Файл . Если же действие нужно осуществить от имени суперпользователя, в начале строки придется добавить sudo, а после ее активации написать пароль, подтверждающий учетную запись. Что касается дополнительных опций, то стоит отметить следующие:

  • ––help и ––version используются редко. Первая опция даст возможность прочесть официальную документацию, а вторая отобразит текущую версию утилиты.
  • -a отвечает за изменение времени доступа к указанному файлу.
  • -m изменяет время модификации.
  • -c определяет, что объект с указанным именем создан не будет.
  • -r позволит использовать время доступа и модификации указанного файла.
  • -t предназначена для изменения даты и времени путем ручного ввода.
  • -d использует дату и время, заданные в виде строки.

Теперь вы знаете абсолютно обо всех доступных опциях рассматриваемой сегодня команды. Давайте перейдем к изучению параметров, чтобы разобраться со всеми основными действиями, выполняемыми при помощи данной утилиты.

Генерация пустых файлов

Для начала разберемся с действием команды touch без применения каких-либо аргументов — так она создает пустой файл размером 0 байт с указанным названием.

    Откройте «Терминал» удобным для вас образом, например, через значок в меню приложений или комбинацию клавиш Ctrl + Alt + T.

После активации этой команды, если она прошла без каких-либо ошибок, появится новая строка для ввода, а в текущем расположении создастся соответствующий объект.

Вы можете добавить несколько файлов одновременно, по очереди написав название каждого, чтобы получилась примерно такая строка: touch testfile1 testfile2 testfile3 .

Имеется одна особенность, которую тоже следует учитывать. Если появилась надобность создать несколько файлов с одинаковым названием, но с разными цифрами в конце, как это было показано выше, проще использовать такой тип написания: touch testfile <1..6>.

Больше команда touch без применения аргументов ничего сделать не способна, поэтому давайте сразу же перейдем к разбору примеров взаимодействия с опциями.

Установка времени последнего доступа

Как вы уже знаете, одна из опций рассматриваемой команды разрешает изменить время доступа к файлу на текущее. Осуществляется это путем ввода всего одной строки которая имеет вид touch -a file , где file — имя необходимого объекта. Количество перечисляемых элементов для одной строки не ограничивается. При этом время последнего изменения не устанавливается, если только в данной строке не дописана дополнительная опция -m, о ней мы и поговорим далее.

Установка времени последнего изменения

По той же аналогии работает и упомянутый выше аргумент -m. Ое переназначает время последнего изменения на текущее, а строка выглядит так: touch -m file . Все внесенные изменения вступают в действие сразу же, а это значит, что вы можете переходить к их проверке или к выполнению других задач, ради которых и вызывалась команда touch с опцией -m.

Запрет на создание объекта

Простая утилита touch иногда позволяет реализовать и сложную цель путем ввода буквально одной строки в консоль. После выполнения команды touch -c file , где file — точное название нужного файла, элемент с указанным именем нельзя будет создать обычному пользователю. Деактивируется эта опция только после того, как привилегированный пользователь создаст пустой объект с таким же названием через эту же команду. Дополнительно ничего не мешает вам создать список из названий, чтобы одновременно установить на них ограничения.

Читайте также:  Запланированное выключение компьютера linux

Установка времени доступа и изменений

Приведенные выше опции -a и -m позволяли только изменить параметры файла, установив текущее время, однако имеется возможность задать абсолютно любое время с точностью до секунды. При этом главное — соблюдать правило ввода: [[ВВ]ГГ]ММДДччммм[.сс] , где ВВ — первые две цифры года, ГГ — вторые, ММ — месяц, ДД — дата, чч — часы, мм — минуты, сс — секунды. Необходимая команда получается такой: touch -c -t 01261036 file .

Если вы заинтересованы в просмотре итогового результата, напишите в консоли ls -l и нажмите на Enter. В списке остается только отыскать необходимый файл и просмотреть, когда он был модифицирован.

Перенос временных меток выбранного файла

Если вы ознакомились с приведенной выше информацией, то знаете, что опция -r разрешит перенести временные метки одного объекта на другой. Осуществляется это через строку: touch -r file1 file2 , где file1 — уже имеющийся файл с определенными временными метками, а file2 — новый объект, к которому они и будут применены.

Создание файла с указанным временем

В конце данного материала отметим, что по умолчанию touch создает файлы с актуальным временем, однако это можно изменить, применив всего одну опцию: touch -t 201912101830.55 file , где 201912101830.55 — точно указанное время на ваш выбор, а file — название того самого объекта или объектов, если они будут представлены в виде списка.

Теперь вы знакомы с командой touch, которая активно используется в Linux для создания файлов. Это могут быть как отдельные тестовые элементы, так и объекты, добавленные для определенных целей. Пользователь уже сам решает, в каком русле применять возможности утилиты. Если вас заинтересовала тема основных команд этой операционной системы, предлагаем изучить представленные далее материалы.

Помимо этой статьи, на сайте еще 12315 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Источник

Linux touch command

On Unix-like operating systems, the touch command modifies file timestamps. If the file doesn’t exist, an empty file with that name is created.

This page covers the GNU/Linux version of touch.

Description

A timestamp is information associated with a file that identifies an important time in the file’s history. A file can have multiple timestamps, and some of them can be «forged» by setting them manually. Internally, the operating system stores these times as time elapsed since an arbitrary date called the epoch. For Unix like operating systems, the epoch is 00:00:00 UTC (Coordinated Universal Time), Thursday, 1 January 1970.

In Linux, there are three timestamps associated with a file:

Timestamp type Description Abbreviation
Access time The last time the file was read. atime
Modification time The last time the contents of the file were modified. mtime
Change time The last time the file’s metadata, called the Status, was changed. Status information includes a file’s permissions and its timestamps.

Every time anything happens to a file, at least one element of its status changes, and its ctime is set to the current system time.

ctime

The atime and mtime are part of a file’s status metadata. Therefore, when you change the atime (-a) or mtime (-m) of a file, its ctime is automatically set to the current time.

There is no way to manually set the ctime.

A file’s atime or mtime can be set to the future or the past if the user owns the file.

Syntax

The only required argument to touch is a file name:

file A file whose times should be changed. If file does not exist, it is created, unless the -c or -h options are used.

Multiple files may be specified as file0 file1 file2. etc.

(If file is a dash ««, touch modifies the special file descriptor standard output. See examples.)

With no options, touch changes the atime, mtime, and ctime of file to the current system time.

Options

Option Description
-a Set the access time only.
-c,
—no-create
Do not create files.
-d datestring,
—date=datestring
Parse the date string datestring, and use it instead of current time. Strings valid to the date command are accepted by the -d option.

In addition to having write access, the user must also own a file to set its times to the past or future. -f This option does nothing, but is accepted to provide compatibility with BSD versions of touch. -h,
—no-dereference If file is a symbolic link and this option is specified, touch modifies the timestamp of the symlink, rather than its referenced file. If this option is not specified, touch will dereference symlinks before making modifications.

This option implies -c: nothing is created if file does not exist. -m Set modification time only. -r=reffile,
—reference=reffile Set the times of file to the times of file reffile instead of the current time.

In addition to having write access, the user must also own a file to set its times to the past or future. -t timestamp Use the numeric timestamp instead of the current time. The format of timestamp is [[CC]YY]MMDDhhmm[.ss].

In addition to having write access, the user must also own a file to set its times to the past or future. —time=timetype An alternate way to specify what type of time to set (as with -a and -m).

The value of timetype must be one of the following:

atime,
access,
use
Set access time. Equivalent to -a.
mtime,
modify
Set modification time. Equivalent to -m.

This option can be specified twice nondestructively. For example, —time=atime —time=mtime is the same as -am. —help Display a help message, and exit. —version Display version information, and exit.

Notes

The -d option takes a human-readable date string. For example, «July 4», «4 Jul», «0:00», or «Jul 4 2017 00:00:00». If year, month, or day are omitted, the current system time values are used. If the time is omitted, midnight is used. The day may be specified before or after the month in the string. Single digit numbers may be prefixed with a zero, or not, according to preference. If seconds are specified, they are to be preceded in the time by a colon ( : ).

-t takes a numeric timestamp, which expresses the month, date, hour, and minute as MMDDHHMM. For example, 07040000 would be midnight on the fourth of July. Century, years, and seconds are optional, and may be specified as CCYYMMDDHHMM.SS. If seconds are specified, they are to be preceded with a period ( . ).

Specifying times in the future is okay. For example, -d «Jan 1 2029». In addition to having write access, the user must also own a file to set its times to the past or future.

Because there is no way to manually set ctimes, the -r, -d, and -t options can modify only atimes and mtimes. When a file is touched, the ctime is always set to the current system time.

Time zones

If the value of environment variable TZ is set, all operations use that time zone. Otherwise, the system default time zone is used.

To set the TZ environment variable, use the command tzselect.

Exit status

The exit status of touch is zero if all operations were successful. Any nonzero value indicates failure.

Examples

If file.txt exists, set its access, modification, and change times (atime, mtime, and ctime) to the current system time. If file.txt doesn’t exist, create an empty file with that name.

If file.txt exists, set its times to the current system time. If it does not exist, do nothing.

Change the atime of file.txt. The mtime is not changed. The ctime is set to the current system time. If file.txt does not exist, it is created.

Change the times of file mysym. If it’s a symbolic link, change the times of the symlink, not the times of the referenced file.

Change the access and modification times of b.txt to match the times of a.txt. The ctime will be set to the current system time. If file.txt does not exist, it is not created.

Change the atime and mtime of b.txt to match the atime and mtime of a.txt. If file1.txt doesn’t exist, do nothing. If b.txt is a symlink, set the times of the symlink. Do not touch the referenced file.

Same as the previous command.

Set the atime and mtime of standard output to midnight, October 31 of the current year. Redirect (>) standard output to boo.txt.

touch cannot overwrite the contents of an existing file, but the redirect will. If boot.txt does not exist, it is created. If boot.txt exists, it will be overwritten.

Same as the previous command.

Examples

Set the atime and mtime of file1.txt to February 1st of the current year. The ctime is set to the current system time.

Same as the previous command.

Same as the previous command.

Set the atime and mtime of file1.txt to 1:02 AM, today.

Same as the previous command.

Set the mtime of file1.txt to September 1, 1927, 11:58 PM and 59 seconds. The ctime is set to the current system time. The atime is not changed.

Examples

Set the atime and mtime of file1.txt to January 2, 3:04 AM of the current year. The ctime is set to the current system time.

Same as the previous command.

Set the atime and mtime of file1.txt to June 7, 2050, 4:05 AM. The ctime is set to the current system time.

Same as the previous command, but explicitly specifying the century (20).

Set the atime of file1.txt to March 4, 1950, 5:06 AM and 59 seconds. The ctime is set to the current system time. The mtime is not changed.

Checking file times with stat

You can check the times of a file using the stat command:

You may notice in this set of examples that when the atime was changed to July 12, 1895, the time zone changed. That’s because DST (Daylight Savings Time) was not enacted in North America until April 1, 1918.

date — View or set the current date and time.
stat — Display the status of a file or filesystem.

Источник

Читайте также:  Настройка нового монитора windows 10
Оцените статью