Touch Command в Linux с примерами (Полное руководство)

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

В операционной системе Linux есть много команд, с помощью которых мы можем создавать файлы, но команда кота, touch команда и, dd command — это наиболее часто используемые команды.

Команда cat создает файл с содержимым. Если вы не хотите писать контент и просто хотите создать пустой файл, вы не можете использовать cat команда.

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

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

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

Вопрос, который возникает у новичков, — что это за временная метка?

Итак, попробуем разобраться.

Когда файл создается в Linux, с ним связываются три отметки времени.

  • Время доступа (atime): Это дата и время последнего открытия файла.
  • Изменить время (mtime): Это дата и время последнего изменения содержимого файла.
  • Изменить время (ctime): Это дата и время последнего изменения атрибутов файла.

Вы можете использовать stat команда для проверки отметок времени файла. Вот пример:

~$ stat mydata.txt 
  File: mydata.txt
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d	Inode: 1056265     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/helpdesk)   Gid: ( 1000/helpdesk)
Access: 2021-01-28 03:20:13.458980696 -0800
Modify: 2021-01-28 03:20:13.458980696 -0800
Change: 2021-01-28 03:20:13.458980696 -0800
 Birth: -
Статистика файла

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

Параметры Объяснение
Изменить время доступа
-c —no-create Не создавайте никаких файлов
-d — дата Установить указанную метку времени
-h —no-dereference Измените временную метку Symlink
Изменить время модификации
-t Использовать [[CC]ГГ]ММДДччмм[.ss] вместо текущего времени
-r —reference Используйте метку времени любого другого файла
—помощь Отобразить страницу справки для сенсорной команды.
—версия Проверьте версию сенсорной команды.

Ключевые особенности сенсорной команды:

  • Создание одного или нескольких пустых файлов
  • Изменить время доступа
  • Изменить время модификации
  • Вы можете избежать создания новых файлов
  • Может использовать метку времени любого другого файла
  • Можно установить указанную метку времени
  • Изменение метки времени символической ссылки

Синтаксис:

Для использования сенсорной команды необходимо следовать приведенному ниже синтаксису.

touch [OPTION]... FILE...

1. Создайте пустой файл.

Введите следующую команду, чтобы создать пустой файл. в этом примере я создаю файл с именем file.txt.

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

$ touch file.txt

Выход:

$ ls
file.txt

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

$ touch file1.txt file2.txt file3.txt

Выход:

$ ls
file1.txt  file2.txt  file3.txt

ИЛИ используйте следующую команду, чтобы быстро создать несколько пустых файлов.

$ touch file{1..5}.txt

Выход:

$ ls
file1.txt  file2.txt  file3.txt  file4.txt  file5.txt

Предлагаемое чтение: Как вывести список содержимого (файлов / каталогов) в Linux

2. Измените время модификации.

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

В этом примере я изменяю время модификации файла с именем file.txt.

Примечание: Если в текущем каталоге нет файла с таким именем, команда touch создаст новый файл.

$ touch -m file.txt

Вы можете проверить дату и время модификации файла, используя stat команда

$ stat file.txt 
  File: file.txt
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d	Inode: 1056300     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/helpdesk)   Gid: ( 1000/helpdesk)
Access: 2021-01-27 23:00:02.725551367 -0800
Modify: 2021-01-27 23:00:14.668003694 -0800
Change: 2021-01-27 23:00:14.668003694 -0800
 Birth: -
Изменить время модификации

3. Измените время доступа

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

Примечание: Если в текущем каталоге нет файла с таким именем, команда touch создаст новый файл.

$ touch -a file.txt

Проверьте обновленную дату и время доступа с помощью stat команда.

$ stat file.txt 
  File: file.txt
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d	Inode: 1056300     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/helpdesk)   Gid: ( 1000/helpdesk)
Access: 2021-01-27 23:51:18.314972161 -0800
Modify: 2021-01-27 23:00:14.668003694 -0800
Change: 2021-01-27 23:51:18.314972161 -0800
 Birth: -
Изменить время доступа

4. Не создавайте новых файлов.

Как вы видели в приведенных выше командах, если файл еще не существует, команда touch создает новый файл.

Давайте рассмотрим сценарий этой функции сенсорной команды, который упростит вам понимание.

Если файл уже существует в текущем каталоге, команда изменит время доступа и изменения этого файла, а если файл не существует, команда не предпримет никаких действий.

В этом случае вы можете передать -c вариант для touch команда.

Возьмем пример:

В настоящее время файл с именем file2.txt существует в текущем каталоге со следующими деталями доступа и изменения.

$ ls
file2.txt
$ stat file2.txt 
  File: file2.txt
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d	Inode: 1056237     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/helpdesk)   Gid: ( 1000/helpdesk)
Access: 2021-01-28 05:29:34.767712299 -0800
Modify: 2021-01-28 05:29:34.767712299 -0800
Change: 2021-01-28 05:29:34.767712299 -0800
 Birth: -

Теперь я запускаю команду для создания файла с таким же именем. Давай посмотрим что происходит.

$ touch -c file2.txt

Выход:

Как видите, новый файл не создается, но статистика доступа и модификации изменилась.

$ ls
file2.txt
$ stat file2.txt 
  File: file2.txt
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d	Inode: 1056237     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/helpdesk)   Gid: ( 1000/helpdesk)
Access: 2021-01-28 06:07:25.876126934 -0800
Modify: 2021-01-28 06:07:25.876126934 -0800
Change: 2021-01-28 06:07:25.876126934 -0800
 Birth: -

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

$ touch -c file3.txt

Как видите, новый файл с именем file3.txt.

$ ls
file2.txt

5. Как использовать метку времени любого другого файла

С помощью команды touch мы можем использовать метку времени файла в другом файле. для этого мы должны пройти -r вариант сенсорной команды.

В этом примере я применяю метку времени file2.txt к file3.txt.

$ touch -r file2.txt file3.txt

6. Как установить указанную метку времени

Это моя самая любимая функция сенсорной команды.

Вы можете установить метку времени файла на желаемую метку времени вместо текущей метки времени.

Для этого команда touch дает нам два варианта, т.е. -t а также -d.

Чтобы установить желаемую временную метку, используя -t вариант, мы должны использовать этот формат: [[CC]YY]MMDDhhmm[.ss]

Пример # 1

Следующая команда изменит метку времени (доступ, дату и время изменения) файла с именем test.txt на 28 Jan 09:20 ЯВЛЯЮСЬ.

$ touch -t 01280920 test.txt
$ stat test.txt 
  File: test.txt
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d	Inode: 1056237     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/helpdesk)   Gid: ( 1000/helpdesk)
Access: 2021-01-28 09:20:00.000000000 -0800
Modify: 2021-01-28 09:20:00.000000000 -0800
Change: 2021-01-28 07:54:22.760534506 -0800
 Birth: -

Пример # 2

Следующая команда изменит метку времени (доступ, дату и время изменения) файла с именем test.txt на 15 Mar 2021 23:20:14 ВЕЧЕРА

$ touch -t 202103152320.14 test.txt
$ stat test.txt 
  File: test.txt
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d	Inode: 1056237     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/helpdesk)   Gid: ( 1000/helpdesk)
Access: 2021-03-15 23:20:14.000000000 -0700
Modify: 2021-03-15 23:20:14.000000000 -0700
Change: 2021-01-28 08:01:12.443441880 -0800
 Birth: -

Предположим, я хочу установить дату и время доступа и изменения для file2.txt 28 января 2021 года в 08:55. Для этого мне нужно выполнить следующую команду.

$ touch -d '28 Jan 2021 08:55' file2.txt
$ stat file2.txt 
  File: file2.txt
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d	Inode: 1056237     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/helpdesk)   Gid: ( 1000/helpdesk)
Access: 2021-01-28 08:55:00.000000000 -0800
Modify: 2021-01-28 08:55:00.000000000 -0800
Change: 2021-01-28 07:26:17.306959869 -0800
 Birth: -

7. Как изменить временную метку Symlink

Чтобы изменить метку времени символической ссылки, передайте -h возможность touch команда.

В этом примере я меняю метку времени Symlink с именем datafile_sym.txt.

$ touch -h datafile_sym.txt

8. Проверьте версию сенсорной команды.

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

$ touch --version
touch (GNU coreutils) 8.28

9. Справка / доступ к странице руководства

Используйте следующие команды для доступа к странице руководства / странице справки сенсорной команды.

$ touch --help
$ man touch

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

Заключение

Надеюсь, вы узнали что-то из этой статьи и, возможно, обнаружили, что touch это очень важная команда в Linux.

Я изо всех сил старался включить в это руководство все функции сенсорной команды.

Теперь хотелось бы услышать ваши мысли.

Было ли это руководство полезно для вас?

Или, может быть, у вас есть вопросы.

Разве я не включил в это руководство какую-либо команду?

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

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован.