Linux команда за докосване

На Подобно на Unix операционни системи, докосване команда променя файла времеви марки . Ако файлът не съществува, се създава празен файл с това име.
Тази страница обхваща GNU / Linux версия на докосване .
- Описание
- Синтаксис
- Настроики
- Примери
- Свързани команди
- Командите на Linux помагат
Описание
Клеймото за време е информация, свързана с файл, която идентифицира важно време в историята на файла. Файлът може да има множество времеви клейма и някои от тях могат да бъдат „подправени“, като ги зададете ръчно. Вътрешно операционна система съхранява тези времена във времето, изминало от произволна дата, наречена епоха . За Unix подобно на операционните системи, епохата е 00:00:00 UTC (координирано универсално време), четвъртък, 1 януари 1970 г.
В Linux , има три клейма, свързани с файл:
Тип клеймо | Описание | Съкращение |
---|---|---|
Време за достъп | Последният път, когато файлът беше прочетен. | време |
Време за модификация | Последното изменение на съдържанието на файла. | mtime |
Сменете времето | Последният път, когато файлът е метаданни , наречен Статус, беше променен. Информацията за състоянието включва файл разрешения и неговите времеви марки. Всеки път, когато нещо се случи с файл, поне един елемент от състоянието му се променя и неговото ctime се задава на текущото системно време. | ctime |
Атимето и mtime са част от метаданните за състоянието на даден файл. Следователно, когато промените времето ( -да се ) или mtime ( -м ) на файл, неговото ctime автоматично се задава на текущото време.
Няма начин ръчно да зададете ctime.
Времето на файла или mtime може да бъде настроено към бъдещето или миналото, ако потребителят притежава файла.
Синтаксис
touch [[ -a ] [ -m ] | [ --time= timetype ] [...]] [[ -d datestring ] | [ -t timestamp ]] [ -c ] [ -f ] [ -h ] [ -r reffile ] file [ file ...]
touch --version
touch --help
Единственият задължителен аргумент за докосване е име на файл :
файл | Файл, чиито времена трябва да бъдат променени. Ако файл не съществува, той е създаден, освен ако -° С или -х се използват опции. Няколко файла могат да бъдат посочени като файл0 файл1 файл2 ... и т.н. (Ако файл е тире - ', докосване модифицира специалния дескриптор на файл стандартен изход . Вижте примери .) |
Без опции, докосване променя времето, mtime и ctime на файл към текущото системно време.
Настроики
Вариант | Описание | ||||
---|---|---|---|---|---|
-да се | Задайте само времето за достъп. | ||||
-° С , --no-create | Не създавайте файлове. | ||||
-д датестринг , --date = датестринг | Анализиране датата низ датестринг и го използвайте вместо текущото време. Низове, валидни за дата командата се приема от -д опция. Вижте примери . Освен че има достъп за запис, потребителят трябва да притежава и файл, за да зададе времето си в миналото или бъдещето. | ||||
-f | Тази опция не прави нищо, но е приета, за да осигури съвместимост с BSD версии на докосване. | ||||
-х , - без пренасочване | Ако файл е символна връзка и тази опция е посочена, докосване модифицира клеймото за време на символната връзка, а не на препращания файл. Ако тази опция не е посочена, докосване ще дереференция символни връзки преди да правите модификации. Тази опция предполага -° С : нищо не се създава, ако файл не съществува. | ||||
-м | Задайте само време за модификация. | ||||
-r = подправяне , --reference = подправяне | Задайте времената на файл до времената на файла подправяне вместо текущото време. Освен че има достъп за запис, потребителят трябва да притежава и файл, за да зададе времето си в миналото или бъдещето. | ||||
-T клеймо за време | Използвайте числовото клеймо за време вместо текущото време. Форматът на клеймо за време е [[ DC ] Да ] MMDDhhmm [ .ss ]. Вижте примери . Освен че има достъп за запис, потребителят трябва да притежава и файл, за да зададе времето си в миналото или бъдещето. | ||||
--time = тип на времето | Алтернативен начин да посочите какъв тип време да зададете (както при -да се и -м ). Стойността на тип на времето трябва да е едно от следните:
| ||||
--помогне | Покажете съобщение за помощ и излезте. | ||||
--версия | Показвайте информацията за версията и излезте. |
Бележки
The -д Опцията взема човешки четлив низ от дата. Например, „4 юли“ , „4 юли“ , „0:00“ , или „4 юли 2017 00:00:00“ . Ако са пропуснати година, месец или ден, се използват текущите стойности на системното време. Ако времето е пропуснато, се използва полунощ. Денят може да бъде посочен преди или след месеца в низа. Едноцифрените числа могат да имат префикс с нула или не, според предпочитанията. Ако са посочени секунди, те трябва да бъдат предшествани във времето от двоеточие ( : ).
-T взема числов клеймо, което изразява месеца, датата, часа и минутата като MMDDHHMM . Например, 07040000 ще бъде полунощ на четвърти юли. Век, години и секунди са по избор и могат да бъдат посочени като CCYYMMDDHHMM.SS . Ако са посочени секунди, те трябва да бъдат предшествани с точка ( . ).
Посочването на часове в бъдеще е наред. Например, -d '1 януари 2029 г.' . Освен че има достъп за запис, потребителят трябва също притежавате файл за да зададе времето си в миналото или бъдещето.
Тъй като няма начин за ръчно задаване на времена, -r , -д , и -T опциите могат да променят само времена и времена. Когато се докосне файл, ctime винаги се задава на текущото системно време.
Времеви зони
Ако стойността на променлива на средата TZ е зададено, всички операции използват тази часова зона. В противен случай се използва системната часова зона по подразбиране.
За да зададете TZ променлива среда, използвайте командата tzselect .
Изход статус
Изходният статус на докосване е нула, ако всички операции са били успешни. Всяка ненулева стойност показва неуспех.
Примери
touch file.txt
Ако file.txt съществува, задайте неговия достъп, модификация и времена за промяна (време, mtime и ctime) на текущото системно време. Ако file.txt не съществува, създайте празен файл с това име.
touch -c file.txt
Ако file.txt съществува, задайте неговото време на текущото системно време. Ако не съществува, не правете нищо.
touch -a file.txt
Променете времето на file.txt . Mtime не се променя. Ctime се задава на текущото системно време. Ако file.txt не съществува, той е създаден.
touch -h mysym
Променете времето на файла mysym . Ако това е символна връзка, променете времената на символната връзка, а не времената на препратения файл.
touch -cr a.txt b.txt
Променете времето за достъп и модификация на b.txt за да съответства на времето на a.txt . Времето ctime ще бъде настроено на текущото системно време. Ако file.txt не съществува, не е създаден.
touch -ahmcr a.txt b.txt
Променете времето и mtime на b.txt за да съответства на времето и mtime на a.txt . Ако file1.txt не съществува, не правете нищо. Ако b.txt е символна връзка, задайте времената на символната връзка. Не докосвайте препратения файл.
touch --time=atime --no-dereference --time=mtime --no-create --reference=a.txt b.txt
Същото като предишната команда.
touch -d 'October 31' - > boo.txt
Задайте време и mtime на стандартната продукция на полунощ, 31 октомври на текущата година. Пренасочване ( > ) стандартен изход към boo.txt .
докосване не може да презапише съдържанието на съществуващ файл, но пренасочването ще. Ако boot.txt не съществува, той е създаден. Ако boot.txt съществува, ще бъде заменен.
touch -t '10310000' - > boo.txt
Същото като предишната команда.
Примери
touch -d '1 Feb' file1.txt
Задайте време и mtime на file1.txt до 1 февруари на текущата година. Ctime се задава на текущото системно време.
touch -d 'February 1' file1.txt
Същото като предишната команда.
touch --date='1 February' file1.txt
Същото като предишната команда.
touch -d '01:02' file1.txt
Задайте време и mtime на file1.txt до 1:02 ч. днес.
touch -d '1:2' file1.txt
Същото като предишната команда.
touch -md 'Sep 1 1927 23:58:59' file1.txt
Задайте mtime на file1.txt до 1 септември 1927 г., 23:58 ч. и 59 секунди. Ctime се задава на текущото системно време. Времето не се променя.
Примери
touch --time=01020304 file1.txt
Задайте време и mtime на file1.txt до 2 януари, 03:04 ч. на текущата година. Ctime се задава на текущото системно време.
touch -t 01020304 file1.txt
Същото като предишната команда.
touch -t 5006070405 file1.txt
Задайте време и mtime на file1.txt до 7 юни 2050 г., 04:05 ч. Ctime се задава на текущото системно време.
touch -t 205007080405 file1.txt
Същото като предишната команда, но изрично указващо века ( двайсет ).
touch -at 195003040506.59 file1.txt
Задайте време на file1.txt до 4 март 1950 г., 5:06 ч. и 59 секунди. Ctime се задава на текущото системно време. Mtime не се променя.
Проверка на времената на файла със стат
Можете да проверите времето на файл с помощта на държава команда:
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: %n' 'accessed: %x' 'modified: %y' 'changed: %z'; do stat --printf='$formatspec ' 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 -0400Забележка
В този набор от примери може да забележите, че когато атимето е променено на 12 юли 1895 г., часовата зона се променя. Това е, защото DST ( Лятно часово време ) е постановено в Северна Америка едва на 1 април 1918 г.
Свързани команди
дата - Прегледайте или задайте текущата дата и час.
държава - Показване на състоянието на файл или файлова система.