当前位置: 首页>>技术教程>>正文


Linux Touch命令的8种常见用法

, ,

除了在Linux上简单地创建一个空文件之外,Linux touch命令还有更多的用途。您也可以使用它来更改现有文件的时间戳,包括它们的访问和修改时间。本文介绍了8种通过Linux终端使用touch命令的方法。

我们已经在Ubuntu 18.04 LTS系统上运行了本文中提到的命令和过程。由于touch命令是一个命令行实用程序,因此本文将使用Ubuntu终端(Terminal)。您可以通过系统Dash或Ctrl + Alt + T快捷方式打开终端。

1.使用touch命令创建一个空文件

touch命令最简单,最基本的用法是通过命令行创建一个空文件。如果您是Terminal-savvy用户,则可以在命令行中通过以下命令快速创建一个新文件:

$ touch “filename”

例:

$ touch samplefile

在以下示例中,我通过touch命令创建了一个名称为“samplefile”的空文件。然后,我使用ls命令查看了系统上文件是否存在,因为touch命令不提示是否已创建文件。

Create empty file with touch command

2.使用touch命令一次创建多个文件

尽管cat命令和标准重定向符号也是通过命令行创建文件的方法,但是touch命令具有优势,因为您可以一次使用它创建多个文件。您可以使用以下语法来通过touch命令创建多个文件:

$ touch samplefile1 samplefile2 samplefile3 ….

在下面的示例中,我通过touch命令同时创建了三个文件,然后使用ls命令来查看这些文件是否存在:

Create multiple files with touch command

3.强制避免使用touch命令创建新文件

有时需要避免创建新文件(如果文件不存在)。在这种情况下,您可以在touch命令中使用“ -c”选项,如下所示:

$ touch -c “filename”

在以下示例中,我使用了touch命令来强制避免创建新文件。

当我使用ls命令列出该文件时,以下输出验证该文件在系统中不存在。

4.更改文件的访问和修改时间

touch命令的另一个用途是更改文件的访问时间和修改时间。

让我们举一个例子来展示如何做到这一点。我通过touch命令创建了一个名为“testfile”的文件,并通过stat命令查看了其统计信息:

Change modification time of file

然后我输入了以下touch命令:

$ touch testfile

该触摸命令将访问和修改时间更改为我再次为“testfile”运行touch命令的时间。您可以在下图中看到更改的访问和修改时间:

File modification and access time changed

5.更改访问时间或修改时间[只修改某一个]

无需同时更改访问和修改时间,我们可以选择通过touch命令仅更改其中之一。

在以下示例中,我创建了一个名为“samplefile”的文件,并通过stat命令查看了它的统计信息:

File details

通过对该文件使用touch命令,使用“ -a”选项,仅更改该文件的访问时间:

$ touch -a samplefile

stat命令的输出现在显示访问时间已更改为我使用’-a’选项运行touch命令的时间:

Change access time

通过在此文件上通过touch命令使用“ -m”选项,仅更改该文件的修改时间:

$ touch -m samplefile

stat命令的输出现在显示修改时间已更改为我使用’-m’选项运行touch命令的时间:

Change modification time

6.如何将一个文件的访问和修改时间复制到另一个文件

假设我们有一个名为samplefileA的文件:

First sample file

另一个名为samplefileB的文件:

Second sample file

如果您想将文件samplefileA的访问和修改时间更改为samplefileB的,您可以按以下方式运行touch命令:

$ touch samplefileA -r sampleFileB

Copy modification and access time from file a to b

上图中stat命令的输出显示,samplefileA现在具有与samplefileB相同的访问和修改时间值。

7.创建一个带有指定时间戳的新文件

为了用指定的时间戳而不是创建的实际时间创建一个新的空文件,可以使用touch命令的以下语法:

$ touch -t YYMMDDHHMM.SS ”filename”

如下图所示,stat示例文件显示其访问和修改时间是通过touch命令创建它时提供的时间戳:

Create a new file with a specified timestamp

8.将文件的时间戳更改为其他时间

您可以使用以下touch命令语法将现有文件的时间戳更改为其他时间:

$ touch -c -t YYMMDDHHMM.SS “filename”

在以下示例中,通过touch命令更改了现有文件的时间戳,然后在示例文件上执行stat命令验证了更改:

Change timestamp of a file to some other time

通过在本文中介绍的基础但有用的方案,我们可以掌握touch命令从而能够通过Linux命令行快速执行一些看似复杂的任务。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7760.html,未经允许,请勿转载。