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.
Я изо всех сил старался включить в это руководство все функции сенсорной команды.
Теперь хотелось бы услышать ваши мысли.
Было ли это руководство полезно для вас?
Или, может быть, у вас есть вопросы.
Разве я не включил в это руководство какую-либо команду?
Оставьте комментарий ниже.