Всем привет!
В этой статье будет рассказано о команде touch в Linux. Команда touch не относится к тем командам, которые применяются ежедневно, но знать об этой команде должен каждый. Основное назначение команды – установка времени доступа и модификации файла, однако это не весь ее функционал. У команды touch имеются вспомогательные функции.
Для справки: применять команду touch к файлу можно только в том случае, если вы имеете право записывать информацию в этот файл. В противном случае при вызове команды touch возникнет ошибка.
Изменение сведений о времени
Для того чтобы одновременно изменить время доступа и время модификации файла (или каталога), надо выполнить команду touch, не задавая никаких опций:
Код:
|
$ ls -l
-rw-r--r-- 1 hub-lex hub-lex 0 2011 Апр 15 05:00 ald_file_DB.txt
-rw-r--r-- 1 hub-lex hub-lex 0 2011 Янв 10 08:21 apache2.log
-rw-r--r-- 1 hub-lex hub-lex 0 2011 Фев 17 15:19 test_001.txt
-rw-r--r-- 1 hub-lex hub-lex 0 2009 Ноя 10 21:18 wireless.log
$ touch wireless.log
$ ls -l
-rw-r--r-- 1 hub-lex hub-lex 0 2011 Апр 15 05:00 ald_file_DB.txt
-rw-r--r-- 1 hub-lex hub-lex 0 2011 Янв 10 08:21 apache2.log
-rw-r--r-- 1 hub-lex hub-lex 0 2011 Фев 17 15:19 test_001.txt
-rw-r--r-- 1 hub-lex hub-lex 0 2012 Апр 15 05:06 wireless.log |
Из вывода выше можно увидеть, что изменилось время доступа и время модификации файла wireless.log.
При необходимости можно изменить время доступа и время модификации по отдельности. Если надо изменить только время доступа, тогда следует указать опцию -a (или –time=access), а чтобы установить только время модификации, надо использовать опцию -m (или –time=modify).
Задание произвольного времени для файла
С помощью команды touch можно выбрать любую дату и время, используя опцию
-t и задавая задавая значение в следующем формате: [[CC]YY]MMDDhhmm[.ss]
- CC – первые две цифры года, задаваемого четырьмя цифрами
- YY – год, задаваемый двумя цифрами: значение 00-68 предполагает первые две цифры – 20; значение 69-99 предполагает первые две цифры – 19; отсутствующее значение предполагает текущий год
- MM – месяц (01-12)
- DD – день (01-31)
- hh – часы (01-23)
- mm – минуты (00-59)
- ss – секунды (00-59)
Для справки: в тех случаях, когда в шаблоне предусмотрены две цифры, а значение представляется одной цифрой, надо указывать ведущий нуль. В противном случае опция будет интерпретирована неправильно.
Ниже представлено несколько примеров использования опции
-t.
Изменяем время доступа и время модификации:
Код:
|
$ stat NEW_TEST_FILE.txt
File: «NEW_TEST_FILE.txt»
Size: 0 Blocks: 0 IO Block: 4096 пустой обычный файл
Device: 805h/2053d Inode: 6427601 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ hub-lex) Gid: ( 1000/ hub-lex)
Access: 2012-04-15 06:16:59.219063838 +0400
Modify: 2012-04-15 06:16:59.219063838 +0400
Change: 2012-04-15 06:18:32.859039413 +0400
$ touch -t 197002160811 NEW_TEST_FILE.txt
$ stat NEW_TEST_FILE.txt
File: «NEW_TEST_FILE.txt»
Size: 0 Blocks: 0 IO Block: 4096 пустой обычный файл
Device: 805h/2053d Inode: 6427601 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ hub-lex) Gid: ( 1000/ hub-lex)
Access: 1970-02-16 08:11:00.000000000 +0300
Modify: 1970-02-16 08:11:00.000000000 +0300
Change: 2012-04-15 06:18:32.859039413 +0400 |
Изменяем только время модификации файла
-m:
Код:
|
$ stat NEW_TEST_FILE.txt
File: «NEW_TEST_FILE.txt»
Size: 0 Blocks: 0 IO Block: 4096 пустой обычный файл
Device: 805h/2053d Inode: 6427601 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ hub-lex) Gid: ( 1000/ hub-lex)
Access: 1970-02-16 08:11:00.000000000 +0300
Modify: 1970-02-16 08:11:00.000000000 +0300
Change: 2012-04-15 06:18:32.859039413 +0400
$ touch -m -t 199907251756 NEW_TEST_FILE.txt
$ stat NEW_TEST_FILE.txt
File: «NEW_TEST_FILE.txt»
Size: 0 Blocks: 0 IO Block: 4096 пустой обычный файл
Device: 805h/2053d Inode: 6427601 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ hub-lex) Gid: ( 1000/ hub-lex)
Access: 1970-02-16 08:11:00.000000000 +0300
Modify: 1999-07-25 17:56:00.000000000 +0400
Change: 2012-04-15 06:19:58.210107313 +040 |
Изменяем только время доступа
-a:
Код:
|
$ stat NEW_TEST_FILE.txt
File: «NEW_TEST_FILE.txt»
Size: 0 Blocks: 0 IO Block: 4096 пустой обычный файл
Device: 805h/2053d Inode: 6427601 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ hub-lex) Gid: ( 1000/ hub-lex)
Access: 1970-02-16 08:11:00.000000000 +0300
Modify: 1999-07-25 17:56:00.000000000 +0400
Change: 2012-04-15 06:19:58.210107313 +0400
$ touch -a -t 201002161756 NEW_TEST_FILE.txt
$ stat NEW_TEST_FILE.txt
File: «NEW_TEST_FILE.txt»
Size: 0 Blocks: 0 IO Block: 4096 пустой обычный файл
Device: 805h/2053d Inode: 6427601 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ hub-lex) Gid: ( 1000/ hub-lex)
Access: 2010-02-16 17:56:00.000000000 +0300
Modify: 1999-07-25 17:56:00.000000000 +0400
Change: 2012-04-15 06:24:42.210038431 +0400 |
Создание нового пустого файла
Необходимость изменять дату возникает довольно редко. Однако команда touch имеет еще одно, гораздо более интересное применение. С ее помощью можно воздействовать на файл, который еще не создан. В результате команда touch создаст новый файл с указанным именем:
Код:
|
$ ls -l
-rw-r--r-- 1 hub-lex hub-lex 0 Апр 15 2011 05:00 ald_file_DB.txt
-rw-r--r-- 1 hub-lex hub-lex 0 Янв 10 2011 08:21 apache2.log
-rw-r--r-- 1 hub-lex hub-lex 0 Мар 16 2011 10:17 test_001.txt
-rw-r--r-- 1 hub-lex hub-lex 0 Ноя 10 2012 15:14 wireless.log
$ touch NEW_TEST_FILE.txt
$ ls -l
-rw-r--r-- 1 hub-lex hub-lex 0 Апр 15 2011 05:00 ald_file_DB.txt
-rw-r--r-- 1 hub-lex hub-lex 0 Янв 10 2011 08:21 apache2.log
-rw-r--r-- 1 hub-lex hub-lex 0 Апр 15 2012 05:42 NEW_TEST_FILE.txt
-rw-r--r-- 1 hub-lex hub-lex 0 Мар 16 2011 10:17 test_001.txt
-rw-r--r-- 1 hub-lex hub-lex 0 Ноя 10 2012 15:14 wireless.log |
На сегодня это все. Чтобы следить за статьями блога, оформляйте подписку по
E-MAIL или
RSS.
Источник: www.levinkv.ru