在**Linux 中,每个文件都与时间戳相关联,每个文件都存储了上次访问时间、**上次修改时间和上次更改时间的信息。因此,每当我们创建新文件并访问或修改现有文件时,该文件的时间戳都会自动更新。
touch
命令是 Unix/Linux 操作系统的标准程序,用于创建新文件或更改现有文件的时间戳。文件的时间戳包括最后访问时间、最后修改时间和最后更改时间。
基本格式为 touch [选项] 文件名
。
-a
: 仅更改访问时间。-c
: 如果文件不存在,不创建新文件。-d
: 更新访问和修改时间。-m
: 仅更改修改时间。-r
: 使用另一个文件的访问和修改时间。-t
: 使用指定的时间创建文件。touch
命令广泛应用于文件管理中,特别是在需要创建空文件或更新文件时间戳的场景。在使用 find
命令和 ls
命令进行文件列表显示和查找时,时间戳信息尤为重要。
创建一个空文件
touch sheena
这个命令创建了一个名为 “sheena” 的新空文件。如果 “sheena” 文件已经存在,这个命令将更新该文件的时间戳,但不会更改文件内容。
同时创建多个文件
touch sheena1 meena leena
此命令一次性创建三个空文件,分别命名为 “sheena1”、“meena” 和 “leena”。和上一个例子一样,如果这些文件已经存在,它们的时间戳将被更新。
更改文件的访问和修改时间
首先介绍三个命令
ls -lu 文件名
这个命令会显示文件的最后访问时间
ls -lt 文件名
这个命令显示文件的最后修改时间
stat 文件名
查看文件的详细信息
下面的命令可以更改文件的访问时间
touch -a leena
该命令仅更新名为 “leena” 的文件的访问时间,但是不会更改文件的修改时间和内容。如果 “leena” 文件不存在,它将创建一个新的空文件。
避免创建新文件
touch -c leena
使用 -c
选项时,如果 “leena” 文件不存在,touch
命令不会创建新文件。如果文件存在,它将更新时间戳。
文件存在更新时间戳
文件不存在,不创建新文件
仅更改文件的修改时间
touch -m leena
此命令仅更新 “leena” 文件的修改时间。如果文件不存在,它会创建一个新的空文件。
显式设置访问和修改时间
touch -c -t YYDDHHMM leena
这个命令结合了 -c
和 -t
选项。-t
选项允许你指定一个具体的时间(格式为年年天天小时小时分钟分钟),在这个例子中用于设置 “leena” 文件的时间戳。如果文件不存在,由于 -c
选项的存在,不会创建新文件。
使用另一个文件的时间戳
touch -r leena meena
这个命令使用 “leena” 文件的时间戳来更新 “meena” 文件的时间戳。如果 “meena” 文件不存在,这个命令将会创建它。
创建具有特定时间的文件
touch -t YYMMDDHHMM.SS tecmint
使用 -t
选项,你可以为文件设置一个特定的时间戳。这个例子中,命令会设置 “tecmint” 文件的时间戳为 2020 年 12 月 10 日 18 时 30 分 55 秒。如果 “tecmint” 文件不存在,它将被创建。