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

докоснете команда

На Подобно на Unix операционни системи, докосване команда променя файла времеви марки . Ако файлът не съществува, се създава празен файл с това име.

Тази страница обхваща GNU / 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 = тип на времето Алтернативен начин да посочите какъв тип време да зададете (както при -да се и ).

Стойността на тип на времето трябва да е едно от следните:

време ,
достъп ,
използване
Задайте време за достъп. Еквивалентно на -да се .
mtime ,
промяна
Задайте време за модификация. Еквивалентно на .
Тази опция може да бъде посочена два пъти неразрушително. Например, --time = atime --time = mtime е същото като -ам .
--помогне Покажете съобщение за помощ и излезте.
--версия Показвайте информацията за версията и излезте.

Бележки

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 г.

дата - Прегледайте или задайте текущата дата и час.
държава - Показване на състоянието на файл или файлова система.