touch 命令在 Linux 上的工作原理

touch 命令允许我们创建文件,或更新文件的访问或修改日期。它由 AT&T 贝尔实验室于 1979 年首次创建。今天,在基于 Linux 和 Unix 的系统上,可以通过终端访问触摸。

在本指南中,让我们看看它是如何touch工作的。的语法touch如下所示,其中x是我们要与之交互或创建的文件的名称,并且[OPTIONS]是我们可以包含的可选设置:

touch [OPTIONS] x

从终端在 Linux 或 Mac 上创建文件#

如果您想从终端在 Linux 或 MacOS 上创建文件,我们只需要单独使用该touch命令即可。例如,touch my-file.txt将在您当前所在的任何目录中创建一个名为 my-file.txt 的文件。

如果您在更改目录时需要帮助,请阅读我们关于 cd 命令的文章。

touch my-file.txt

如果要在 Linux 或 MacOS 上创建多个文件,请使用该touch命令,并用空格分隔每个文件。

touch my-file.txt my-file-2.txt

如果要在 Linux 或 MacOS 上以某种文件格式创建多个编号文件,请使用touch和 使用花括号进行编号。例如touch my-file-{1..5}.txt将创建 my-file-1.txt 到 my-file-5.txt。

touch my-file-{1..5}.txt

在 Linux 或 Mac 上更改文件的访问/修改时间#

如果您需要将现有文件的访问或修改时间更改为当前时间,您可以对现有文件运行相同的命令。这将更新文件的访问和修改时间:

touch my-file.txt

如果我们想分别更新访问时间和修改时间,我们使用-a访问时间-m选项和修改时间选项。

例如,以下代码将仅更新修改时间:

touch -m my-file.txt

仅当文件存在于 Linux 或 Mac 上时才更新其时间戳

如果我们只想在文件存在于 Linux 或 Mac 上时更新文件的时间戳,如果不存在则不创建它,我们需要使用该-c选项。

例如,如果文件存在,下面的代码会将文件的时间戳更新到当前时间,但如果不存在,它将什么也不做:

touch -c my-file.txt

这可以与-a-m选项结合使用,分别仅更新访问或修改时间:

touch -ca my-file.txt

在 Linux 或 Mac 上为文件设置特定时间戳#

如果我们想在文件上设置特定的时间和日期,我们可以使用-d命令(或--date=)来完成。

MacOS 上的触摸时间格式

在最新版本的 MacOS 上,时间格式必须为YYYY-MM-DDThh:mm:SS. 例如,1993-03-2609:44:00将访问和修改日期设置为 1993 年 3 月 26 日 9:44:00:

touch -d '1993-03-2609:44:00' my-file.txt

Linux 上的触摸时间格式

在基于 Linux 的系统上,触摸时间格式为[YY]YYMMDDhhmm[.ss]. 这意味着我们可以通过使用来设置文件的修改和访问日期touch -d '[YY]YYMMDDhhmm[.ss]' file.txt。年份的前两位数和秒数是可选的。

通常,将年份设置为完整的 4 位数年份代码更容易,但是年份的前两位数字是可选的。如果只给出两位数字,那么大多数系统假设 70 到 99 表示 1970 – 1999,而 00 到 37 表示 2000 – 2037。这可能会随着时间的推移而改变,因此最好坚持 4 位数的年份。

例如,以下代码将访问日期和修改日期设置为my-file1993 年 3 月 26 日 9:44:00。

touch -d '199303260944.00' my-file.txt

将特定时间戳与 touch 命令中的其他选项相结合

如您所料,您可以将其与其他命令结合使用。例如,touch -ad设置访问日期,touch -md设置文件的修改日期。

默认情况下,如果您尝试更新符号链接的访问或修改时间,它也会更新参考文件。要仅更新符号链接本身,请使用该-h选项。例如,下面的代码更新了符号链接的访问和修改时间mySymLink

touch -h mySymLink

这也可以与其他选项结合使用。例如,这只会将符号链接访问时间更新为当前时间:

touch -ha mySymLink

设置文件的时间戳以匹配 Linux 或 Mac 上的另一个文件#

-r您还可以使用该选项设置文件的时间戳以匹配另一个文件的时间戳。例如,如果您希望new-file.txt与 具有相同的时间戳old-file.txt,我们将编写以下内容:

touch -r old-file.txt new-file.txt

发表评论

邮箱地址不会被公开。 必填项已用*标注