A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
-bash: touch: command not found #Debian apt-get install coreutils #Ubuntu apt-get install coreutils #Arch Linux pacman -S coreutils #Kali Linux apt-get install coreutils #CentOS yum install coreutils #Fedora dnf install coreutils #Raspbian apt-get install coreutils #Docker docker run cmd.cat/touch touch
时间戳是与文件相关联的信息,用于标识文件历史记录中的重要时间。 一个文件可以有多个时间戳,其中一些可以通过手动设置来“伪造”。 在内部,操作系统将这些时间存储为自称为纪元的任意日期起经过的时间。 对于类似 Unix 的操作系统,纪元是 1970 年 1 月 1 日 星期四 00:00:00 协调世界时(UTC)。
touch [[-a] [-m] | [--time=timetype] [...]] [[-d datestring] | [-t timestamp]] [-c] [-f] [-h] [-r reffile] file [file ...]
-a:或--time=atime或--time=access或--time=use 只更改存取时间; -c:或--no-create 不建立任何文件; -d:<时间日期> 使用指定的日期时间,而非现在的时间; -h,--no-dereference:如果file是符号链接并且指定了此选项,则touch将修改符号链接的时间戳,而不是其引用的文件。 如果未指定此选项,则在进行修改之前触摸将取消引用符号链接。 此选项意味着-c:如果文件不存在,则不会创建任何内容。 -f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题; -m:或--time=mtime或--time=modify 只更该变动时间; -r:<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同; -t:<日期时间> 使用指定的日期时间,而非现在的时间; --help:在线帮助; --version:显示版本信息。
文件:指定要设置时间属性的文件列表。
Timestamp 类型 | 描述 | 缩写 |
---|---|---|
Access time | 上次读取文件的时间 | atime |
Modification time |
最后一次修改文件的内容 | mtime |
Change time | 上次更改文件的元数据(称为“状态”)。 状态信息包括文件的权限及其时间戳。 每当文件发生任何事件时,其状态的至少一个元素都会更改,并且其ctime将设置为当前系统时间。 |
ctime |
atime
和 mtime
是文件状态元数据的一部分。 因此,当您更改文件的 atime(-a)
或 mtime(-m)
时,其 ctime
会自动设置为当前时间。
无法手动设置 ctime
。
如果用户拥有该文件,则可以将文件的 atime
或 mtime
设置为将来或过去。
如果 file.txt 存在,请将其访问,修改和更改时间(atime,mtime和ctime)设置为当前系统时间。 如果file.txt不存在,则创建一个具有该名称的空文件:
$ touch file.txt
如果 file.txt 存在,请将其时间设置为当前系统时间。 如果它不存在,则什么都不做:
$ touch -c file.txt
改变文件 mysym 的次数。 如果它是软链接,请更改软链接的时间,而不是引用文件的时间:
$ touch -h mysym
更改b.txt的访问和修改时间以匹配a.txt的时间。 ctime将设置为当前系统时间。 如果file.txt不存在,则不会创建它:
$ touch -cr a.txt b.txt
更改 b.txt 的 atime 和 mtime 以匹配 a.txt 的 atime 和 mtime。 如果 a.txt 不存在,则不执行任何操作。 如果 b.txt 是符号链接,请设置符号链接的时间。 请勿触摸引用的文件:
$ touch -ahmcr a.txt b.txt #等同于下面命令 $ touch --time=atime --no-dereference --time=mtime --no-create --reference=a.txt b.txt
将标准输出的 atime 和 mtime 设置为当前年份的 10 月 31 日午夜。 将标准输出重定向(>)到 boo.txt:
$ touch -d "October 31" - > boo.txt #等同于下面命令 $ touch -t "10310000" - > boo.txt #touch 不能覆盖现有文件的内容,但重定向会。 如果 boot.txt 不存在,则会创建它。 如果 boot.txt 存在,它将被覆盖。
将 file1.txt 的 atime 和 mtime 设置为当前年份的 2 月 1 日。 ctime 设置为当前系统时间。
$ touch -d "1 Feb" file1.txt