К оманда Touch в Linux используется для изменения временных меток файлов, однако одно из наиболее распространенных способов использования команды Touch включает в себя создание нового пустого файла.
С помощью команды touch вы можете изменять доступ, изменять время файлов и папок в Linux. Вы можете обновлять временные метки или изменять их до даты в прошлом.
Синтаксис команды touch довольно прост:
Touch file
Что такое временные метки файлов в Linux?
Для быстрого вызова, мы перечислим здесь временные метки:
- время доступа – последний раз при доступе к файлу
- изменить время – последний раз, когда файл был изменен
- изменить время – последний раз, когда были изменены метаданные файлов (разрешение файла, право собственности и т. д.)
Вы можете увидеть временные метки файла, используя команду stat, следующим образом:
Stat andreyex.txt File: andreyex.txt Size: 10 Blocks: 8 IO Block: 4096 regular file Device: 10305h/66309dInode: 11940163 Links: 1 Access: (0644/-rw-r--r--) Uid: (1000/andreyexshek) Gid: (1000/andreyexshek) Access: 2018-09-02 14:24:16.214425121 +0530 Modify: 2018-09-02 14:24:16.214425121 +0530 Change: 2018-09-02 14:24:16.214425121 +0530 Birth: -
9 практических примеров команды touch в Linux
Теперь давайте посмотрим, как использовать команду touch с помощью простых, но полезных примеров.
1. Создать пустой файл
Как мы упоминали ранее, это наиболее распространенное использование команды touch. Все, что вам нужно сделать, это использовать touch к имени файла.
Touch
Это создаст пустой файл, если файл не существует.
Touch empty_file ls -l empty_file -rw-r--r-- 1 andreyexshek andreyexshek 0 Sep 2 14:24 empty_file
Но что, если файл уже существует? В этом случае он обновит все три временных файла до текущего времени.
2. Создайте несколько пустых файлов
Вы можете использовать touch для создания нескольких пустых файлов. Просто укажите имена файлов, которые вы хотите создать.
Touch
Если вы считаете, что устали писать все имена файлов, вы можете автоматически генерировать имена файлов таким образом:
Touch new-file-{1..10}.txt
Это создаст файл new-file-1.txt, new-file-2.txt до new-file-10.txt.
3. Избегайте создания файла с помощью touch если он не существует
Touch будет обновлять временные метки входного файла, если он существует, и создаст пустой файл, если входной файл не существует.
Но что, если вы не хотите использовать touch к созданию нового пустого файла? Вы хотите, чтобы он обновлял временные метки файла, но если файл не существует, его не следует создавать.
Вы может использовать команду touch с опцией -c в таких случаях:
Touch -c
Примечание
Помните: Touch создаст новый пустой файл, если он не существует, он изменит временные метки существующего файла. Вы можете остановить создание нового файла с параметром -c.
4. Измените все временные метки файла
Если вы используете touch к существующему файлу, он изменит доступ, изменит и время этого файла.
Например, у меня есть файл Alex_many.txt со следующими отметками времени:
Stat Alex_many.txt File: Alex_many.txt Size: 356 Blocks: 8 IO Block: 4096 regular file Device: 10305h/66309dInode: 11928277 Links: 1 Access: (0777/-rwxrwxrwx) Uid: (1000/andreyexshek) Gid: (1000/andreyexshek) Access: 2018-08-14 11:24:45.092937000 +0530 Modify: 2018-08-16 15:22:55.028309000 +0530 Change: 2018-08-14 11:24:45.096937182 +0530
Если использовать команду touch, все временные метки будут изменены на текущие временные метки.
Touch Alex_many.txt stat Alex_many.txt File: Alex_many.txt Size: 356 Blocks: 8 IO Block: 4096 regular file Device: 10305h/66309dInode: 11928277 Links: 1 Access: (0777/-rwxrwxrwx) Uid: (1000/andreyexshek) Gid: (1000/andreyexshek) Access: 2018-09-02 15:22:47.017037942 +0530 Modify: 2018-09-02 15:22:47.017037942 +0530 Change: 2018-09-02 15:22:47.017037942 +0530 Birth: -
Примечание
Вам не следует беспокоиться о CTime (Смена времени). Это системное свойство и не может / не должно контролироваться пользователем. Вы должны сосредоточиться на доступе и изменении времени.
5. Обновить только время доступа к файлу
Вы не всегда можете изменить все временные метки файла. Если вы просто хотите изменить время доступа к файлу, вы можете использовать опцию -a с командой touch.
Touch -a Alex_many.txt stat Alex_many.txt File: Alex_many.txt Size: 356 Blocks: 8 IO Block: 4096 regular file Device: 10305h/66309dInode: 11928277 Links: 1 Access: (0777/-rwxrwxrwx) Uid: (1000/andreyexshek) Gid: (1000/andreyexshek) Access: 2018-09-02 15:29:08.796926093 +0530 Modify: 2018-09-02 15:22:47.017037942 +0530 Change: 2018-09-02 15:29:08.796926093 +0530 Birth: -
6. Обновить только время изменения файла
Если вы просто хотите обновить время изменения файла до текущей метки времени, используйте параметр -m для команды touch.
Touch -m Alex_many.txt stat Alex_many.txt File: Alex_many.txt Size: 356 Blocks: 8 IO Block: 4096 regular file Device: 10305h/66309dInode: 11928277 Links: 1 Access: (0777/-rwxrwxrwx) Uid: (1000/andreyexshek) Gid: (1000/andreyexshek) Access: 2018-09-02 15:29:08.796926093 +0530 Modify: 2018-09-02 15:31:25.770866881 +0530 Change: 2018-09-02 15:31:25.770866881 +0530 Birth: -
7. Используйте временные метки другого файла
Вы также можете использовать временные метки другого файла в качестве ссылки с параметром -r следующим образом:
Touch -r
Это установит время доступа и изменения целевого файла так же, как время доступа и изменения исходного файла.
8. Задайте конкретное время доступа и модификации
Возможно, вы заметили, что почти во всех случаях (кроме ссылочного файла) метки времени изменяются на текущую временную метку.
Но вы не связаны с этим. Touch позволяет вам установить время доступа и модификации на прошлую или будущую дату. Вы можете использовать опцию -t и временную метку в следующем формате:
MMDDhhmm[.ss]
- CC – первые две цифры года
- YY – Две две цифры года
- MM – месяц года (01-12)
- DD – День месяца (01-31)
- hh – час дня (00-23)
- mm – минута часа (00-59)
- ss – Секунды (00-59)
В приведенном выше случае CC является необязательным. По факту, CCYY также является необязательным, в этом случае он будет занимать текущий год. Аналогично, секунды также являются необязательными, по умолчанию они равны 00.
Позвольте нам показать вам пример, изменив временную метку на 12021301, т.е. 12-й месяц, второй день, 13-й час и первую минуту текущего года:
Touch -t 12021301 destroyer.txt stat destroyer.txt File: destroyer.txt Size: 457 Blocks: 8 IO Block: 4096 regular file Device: 10305h/66309dInode: 11928279 Links: 1 Access: (0777/-rwxrwxrwx) Uid: (1000/andreyexshek) Gid: (1000/andreyexshek) Access: 2018-12-02 13:01:00.000000000 +0530 Modify: 2018-12-02 13:01:00.000000000 +0530 Change: 2018-09-02 15:59:47.588680901 +0530 Birth: -
Если вы попытаетесь ввести недопустимую дату, вы увидите сообщение об ошибке. Вы также заметите, что время изменения использует текущую временную метку, а не как доступ и изменение. Это потому, что это системное свойство.
9. Изменить временную метку символической ссылки
Вы также можете использовать команду touch с символическими ссылками. Вам просто нужно использовать опцию -h, имея дело с символическими ссылками. Остальные остаются такими же, как и обычные файлы.
Touch -h
Надеюсь, вы найдете эти примеры командной строки в полезными. Если у вас есть какие-либо вопросы или предложения, сообщите нам.
With no options, touch will change 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. | ||||
-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
will modify 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:
|
||||
--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 will always be set to the current system time.
Time zones
touch -t "10310000" - > boo.txtSame as the previous command.
Examples
touch -d "1 Feb" file1.txtSet the atime and mtime of file1.txt to February 1st of the current year. The ctime is set to the current system time.
Touch -d "February 1" file1.txt
Same as the previous command.
Same as the previous command.
Touch -d "01:02" file1.txt
Set the atime and mtime of file1.txt to 1:02 AM, today.
Touch -d "1:2" file1.txt
Same as the previous command.
Touch -md "Sep 1 1927 23:58:59" file1.txt
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
touch --time=01020304 file1.txtSet 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.
Touch -t 01020304 file1.txt
Same as the previous command.
Touch -t 5006070405 file1.txt
Set the atime and mtime of file1.txt to June 7, 2050, 4:05 AM. The ctime is set to the current system time.
Touch -t 205007080405 file1.txt
Same as the previous command, but explicitly specifying the century (20 ).
Touch -at 195003040506.59 file1.txt
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
stat file.txt stat: cannot stat "file.txt": No such file or directory touch file.txt; stat file.txt File: "file.txt" Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 802h/2050d Inode: 668116 Links: 1 Access: (0664/-rw-rw-r--) Uid: (1001/ hope) Gid: (1002/ hope) Access: 2017-10-25 21:35:17.368254343 -0400 Modify: 2017-10-25 21:35:17.368254343 -0400 Change: 2017-10-25 21:35:17.368254343 -0400 Birth: - touch -ad "July 12 1895" file.txt; stat file.txt File: "file.txt" Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 802h/2050d Inode: 668116 Links: 1 Access: (0664/-rw-rw-r--) Uid: (1001/ hope) Gid: (1002/ hope) Access: 1895-07-12 00:00:00.000000000 -0500 Modify: 2017-10-25 21:35:17.368254343 -0400 Change: 2017-10-25 21:35:55.487636366 -0400 Birth: - touch -mt 198307010000 file.txt; stat file.txt File: "file.txt" Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 802h/2050d Inode: 668116 Links: 1 Access: (0664/-rw-rw-r--) Uid: (1001/ hope) Gid: (1002/ hope) Access: 1895-07-12 00:00:00.000000000 -0500 Modify: 1983-07-01 00:00:00.000000000 -0400 Change: 2017-10-25 21:36:59.654589018 -0400 Birth: - for formatspec in "file name:\t%n" "accessed:\t%x" "modified:\t%y" "changed:\t%z"; do stat --printf="$formatspec\n" file.txt; done file name: file.txt accessed: 1895-07-12 00:00:00.000000000 -0500 modified: 1983-07-01 00:00:00.000000000 -0400 changed: 2017-10-25 21:36:59.654589018 -0400Note: 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 Daylight Savings Time (DST) was not enacted in North America until April 1, 1918.
Related commands
date
— View or set the current date and time.
stat
— Display the status of a file or filesystem.
#andreyex #Linux, #КомандыLinux
Команда Touch в Linux используется для изменения временных меток файлов, однако одно из наиболее распространенных способов использования команды Touch включает в себя создание нового пустого файла.
С помощью команды touch вы можете изменять доступ, изменять время файлов и папок в Linux. Вы можете обновлять временные метки или изменять их до даты в прошлом.
Синтаксис команды touch довольно прост:
touch file
Что такое временные метки файлов в Linux?
Для быстрого вызова, мы перечислим здесь временные метки:- время доступа - последний раз при доступе к файлу
- изменить время - последний раз, когда файл был изменен
- изменить время - последний раз, когда были изменены метаданные файлов (разрешение файла, право собственности и т. д.)
stat andreyex.txt
File: andreyex.txt
Size: 10 Blocks: 8 IO Block: 4096 regular file
Device: 10305h/66309d Inode: 11940163 Links: 1
Access: (0644/-rw-r--r--) Uid: (1000/andreyexshek) Gid: (1000/andreyexshek)
Access: 2018-09-02 14:24:16.214425121 +0530
Modify: 2018-09-02 14:24:16.214425121 +0530
Change: 2018-09-02 14:24:16.214425121 +0530
Birth: -
9 практических примеров команды touch в Linux
Теперь давайте посмотрим, как использовать команду touch с помощью простых, но полезных примеров.1. Создать пустой файл
Как мы упоминали ранее, это наиболее распространенное использование команды touch. Все, что вам нужно сделать, это использовать touch к имени файла.touch
Это создаст пустой файл, если файл не существует.
touch empty_file
ls -l empty_file
-rw-r--r-- 1 andreyexshek andreyexshek 0 Sep 2 14:24 empty_file
Но что, если файл уже существует? В этом случае он обновит все три временных файла до текущего времени.
2. Создайте несколько пустых файлов
Вы можете использовать touch для создания нескольких пустых файлов. Просто укажите имена файлов, которые вы хотите создать.touch
Если вы считаете, что устали писать все имена файлов, вы можете автоматически генерировать имена файлов таким образом:
touch new-file-1..10.txt
Это создаст файл new-file-1.txt, new-file-2.txt до new-file-10.txt.
3. Избегайте создания файла с помощью touch если он не существует
Touch будет обновлять временные метки входного файла, если он существует, и создаст пустой файл, если входной файл не существует.Но что, если вы не хотите использовать touch к созданию нового пустого файла? Вы хотите, чтобы он обновлял временные метки файла, но если файл не существует, его не следует создавать.
Вы может использовать команду touch с опцией -c в таких случаях:
touch -c
Помните: Touch создаст новый пустой файл, если он не существует, он изменит временные метки существующего файла. Вы можете остановить создание нового файла с параметром -c.
4. Измените все временные метки файла
Если вы используете touch к существующему файлу, он изменит доступ, изменит и время этого файла.Например, у меня есть файл Alex_many.txt со следующими отметками времени:
stat Alex_many.txt
File: Alex_many.txt
Access: 2018-08-14 11:24:45.092937000 +0530
Modify: 2018-08-16 15:22:55.028309000 +0530
Change: 2018-08-14 11:24:45.096937182 +0530
Если использовать команду touch, все временные метки будут изменены на текущие временные метки.
touch Alex_many.txt
stat Alex_many.txt
File: Alex_many.txt
Size: 356 Blocks: 8 IO Block: 4096 regular file
Device: 10305h/66309d Inode: 11928277 Links: 1
Access: (0777/-rwxrwxrwx) Uid: (1000/andreyexshek) Gid: (1000/andreyexshek)
Access: 2018-09-02 15:22:47.017037942 +0530
Change: 2018-09-02 15:22:47.017037942 +0530
Birth: -
Вам не следует беспокоиться о CTime (Смена времени). Это системное свойство и не может / не должно контролироваться пользователем. Вы должны сосредоточиться на доступе и изменении времени.
5. Обновить только время доступа к файлу
Вы не всегда можете изменить все временные метки файла. Если вы просто хотите изменить время доступа к файлу, вы можете использовать опцию -a с командой touch.touch -a Alex_many.txt
stat Alex_many.txt
File: Alex_many.txt
Size: 356 Blocks: 8 IO Block: 4096 regular file
Device: 10305h/66309d Inode: 11928277 Links: 1
Access: (0777/-rwxrwxrwx) Uid: (1000/andreyexshek) Gid: (1000/andreyexshek)
Modify: 2018-09-02 15:22:47.017037942 +0530
Change: 2018-09-02 15:29:08.796926093 +0530
Birth: -
6. Обновить только время изменения файла
Если вы просто хотите обновить время изменения файла до текущей метки времени, используйте параметр -m для команды touch.touch -m Alex_many.txt
stat Alex_many.txt
File: Alex_many.txt
Size: 356 Blocks: 8 IO Block: 4096 regular file
Device: 10305h/66309d Inode: 11928277 Links: 1
Access: (0777/-rwxrwxrwx) Uid: (1000/andreyexshek) Gid: (1000/andreyexshek)
Access: 2018-09-02 15:29:08.796926093 +0530
Modify: 2018-09-02 15:31:25.770866881 +0530
Change: 2018-09-02 15:31:25.770866881 +0530
Birth: -
7. Используйте временные метки другого файла
Вы также можете использовать временные метки другого файла в качестве ссылки с параметром -r следующим образом:touch -r
Это установит время доступа и изменения целевого файла так же, как время доступа и изменения исходного файла.
8. Задайте конкретное время доступа и модификации
Возможно, вы заметили, что почти во всех случаях (кроме ссылочного файла) метки времени изменяются на текущую временную метку.Но вы не связаны с этим. Touch позволяет вам установить время доступа и модификации на прошлую или будущую дату. Вы можете использовать опцию -t и временную метку в следующем формате:
MMDDhhmm[.ss]
- CC - первые две цифры года
- YY - Две две цифры года
- MM - месяц года (01-12)
- DD - День месяца (01-31)
- hh - час дня (00-23)
- mm - минута часа (00-59)
- ss - Секунды (00-59)
Позвольте нам показать вам пример, изменив временную метку на 12021301, т.е. 12-й месяц, второй день, 13-й час и первую минуту текущего года:
touch -t 12021301 destroyer.txt
stat destroyer.txt
File: destroyer.txt
Size: 457 Blocks: 8 IO Block: 4096 regular file
Device: 10305h/66309d Inode: 11928279 Links: 1
Access: (0777/-rwxrwxrwx) Uid: (1000/andreyexshek) Gid: (1000/andreyexshek)
Access: 2018-12-02 13:01:00.000000000 +0530
Modify: 2018-12-02 13:01:00.000000000 +0530
Change: 2018-09-02 15:59:47.588680901 +0530
Birth: -
Если вы попытаетесь ввести недопустимую дату, вы увидите сообщение об ошибке. Вы также заметите, что время изменения использует текущую временную метку, а не как доступ и изменение. Это потому, что это системное свойство.
9. Изменить временную метку символической ссылки
Вы также можете использовать команду touch с символическими ссылками. Вам просто нужно использовать опцию -h, имея дело с символическими ссылками. Остальные остаются такими же, как и обычные файлы.touch -h
Надеюсь, вы найдете эти примеры командной строки в
touch - команда Unix, созданная для установки времени последнего конфигурации файла либо доступа в настоящее время. Также употребляется для сотворения пустых файлов.
ИсторияУтилита touch появилась в операционной системе AT&T UNIX Version 7. Версия утилиты touch, которая идет в комплекте с GNU coreutils, была разработана Полом Рабином, Арнольдом Роббинсом, Джимом Кингдоном, Девидом МакКинзи и Рэнди Смитом.
СпецификацияСогласно POSIX утилита touch изменяет время последнего конфигурации либо время последнего доступа файла. Имя либо путь к файлу передается в качестве аргумента.
Если файл не существует, утилита делает пустой файл с обозначенным именованием и устанавливает время последнего конфигурации и последнего доступа в значение, переданное в качестве аргумента. Если аргумент времени не задан, употребляется текущее время.
Синтаксис командыtouch
[-acfhm] [-r файл] [-t MMDDhhmm.] файл
-a
Устанавливает время последнего доступа к файлу. Время последнего конфигурации не устанавливается, если очевидно не задан ключ -m
Указывает утилите не создавать файл, если он не существует, при всем этом никаких сообщений об ошибке показано не будет.
-f
Пытается обновить информацию о времени, даже если права доступа файла не позволяют делать.
-h
Указывает утилите не изменять данные о файле, если он задан символической ссылкой.
-m
Устанавливает время последнего конфигурации файла.
-r file
Использовать значения времени из файла, данного аргументом file .
-t time
Устанавливает время последнего конфигурации и доступа в согласовании с обозначенным форматом time .
Формат даты, обозначенный в ключе -t задается в согласовании с шаблоном [[СС]YY]MMDDhhmm[.SS] :
СС
- 1-ые две числа года (век).
Если параметр CC не задан и значение YY находится в границах Шестьдесят девять и 99, то тогда СС устанавливается равным 19,
в неприятном случае употребляется 20.
MM - двузначный номер месяца.
DD - двузначный номер денька.
hh - значение часов даты.
mm - значение минут даты.
SS - значение секунд даты.
как взломать wi-fi на андроид при помощи программы wi-fi hacker pro обзоры Давида
В различных UNIX-подобных системах синтаксис команды может отличаться. К примеру, GNU touch содержит опцию -d, которая позволяет устанавливать дату в форматах, отличающихся от упомянутого выше.
ПримерыДелает файл myfile.txt и устанавливает время последнего конфигурации и доступа в настоящее время в системе; если файл существует - обновляет время последнего конфигурации и доступа не изменяя при всем этом содержимого файла:
# touch myfile.txtУстанавливает дату последнего конфигурации и доступа в 8:46:26 30 один января Две тыщи семь г.:
# touch -t 200701310846.26 index.html # touch -d "31 Января 2007 8:46:26" index.html # touch -d "Jan 30 один 2007 8:46:26" index.html Ссылки
- touch - справочная страничка GNU coreutils
- touch - справочная страничка операционной системы OpenBSD
- Официальная спецификация touch
- Примеры использования touch