首頁 > 軟體

Linux Touch命令的8種常見使用方法

2020-06-16 16:43:15

Linux touch命令不僅可以用於在Linux上建立空檔案。 您可以使用它來更改現有檔案的時間戳,包括其存取許可權和修改時間。 本文介紹了8種可以通過Linux終端使用touch命令的方案。

我們在Ubuntu 18.04 LTS/Ubuntu 18.10系統上執行了本文中提到的命令和過程。 由於touch命令是命令列實用程式,因此我們將在本文中使用Ubuntu終端。 您可以通過系統Dash或Ctrl + Alt + T快捷方式開啟終端。

linuxidc@linuxidc:~/linuxidc.com$ touch --help
用法:touch [選項]... 檔案...
Update the access and modification times of each FILE to the current time.

A FILE argument that does not exist is created empty, unless -c or -h
is supplied.

A FILE argument string of - is handled specially and causes touch to
change the times of the file associated with standard output.

必選引數對長短選項同時適用。
  -a   只更改存取時間
  -c, --no-create 不建立任何檔案
  -d, --date=字串 使用指定字串表示時間而非當前時間
  -f   (忽略)
  -h, --no-dereference  會影響符號連結本身,而非符號連結所指示的目的地
    (當系統支援更改符號連結的所有者時,此選項才有用)
  -m   只更改修改時間
  -r, --reference=FILE  use this file's times instead of current time
  -t STAMP              use [[CC]YY]MMDDhhmm[.ss] instead of current time
      --time=WORD        change the specified time:
                          WORD is access, atime, or use: equivalent to -a
                          WORD is modify or mtime: equivalent to -m
      --help  顯示此幫助資訊並退出
      --version  顯示版本資訊並退出

請注意,-d 和-t 選項可接受不同的時間/日期格式。

1.使用touch命令建立一個空檔案

touch命令最簡單和最基本的用法是通過命令列建立一個空檔案。 如果您是精通終端的人,可以通過以下命令在命令列中快速建立新檔案:

$ touch “filename”

範例:

$ touch linuxidc

在下面的範例中,我通過touch命令建立了一個名為“linuxidc”的空檔案。 然後我使用ls命令檢視系統中是否存在該檔案,因為touch命令不會提示檔案是否已建立。

2.使用touch命令一次建立多個檔案

儘管cat命令和標準重定向符號也是通過命令列建立檔案的方法,但touch命令具有優勢,因為您可以一次建立多個檔案。 您可以使用以下語法通過touch命令建立多個檔案:

$ touch linuxidc1 linuxidc2 linuxidc3 ….

在下面的範例中,我通過touch命令同時建立了三個檔案,然後使用ls命令檢視這些檔案的存在:

3.強制避免使用touch命令建立新檔案

有時,如果新檔案不存在,則需要避免建立新檔案。 在這種情況下,您可以使用touch命令使用'-c'選項,如下所示:

$ touch -c “filename”

在下面的範例中,我使用touch命令避免建立上述新檔案。

touch -c linuxidc

當我使用ls命令列出該檔案時,以下輸出將驗證我的系統中是否存在此類檔案。

linuxidc@linuxidc:~$ touch -c linux
linuxidc@linuxidc:~$ ls linux
ls: 無法存取'linux': 沒有那個檔案或目錄

4.更改檔案的存取和修改時間

touch命令的另一個用途是更改檔案的存取時間和修改時間。

讓我們舉一個例子來說明如何做到這一點。 我通過touch命令建立了一個名為“linuxmi”的檔案,並通過stat命令檢視了它的統計資訊:

然後我輸入了以下touch命令:

$ touch linuxmi

此touch命令將存取和修改時間更改為再次為“linuxmi”執行touch命令的時間。 您可以在下上圖中看到更改的存取和修改時間。

5.更改存取時間或修改時間

我們可以選擇僅通過touch命令更改其中一個,而不是更改存取和修改時間。

在下面的範例中,我建立了一個名為“linuxidc”的檔案,並通過stat命令檢視統計資訊:

我可以通過此檔案上的touch命令使用'-a'選項來僅更改此檔案的存取時間:

$ touch -a linuxidc

stat命令的輸出現在顯示存取時間已更改為我使用'-a'選項執行touch命令的時間:

我可以通過此檔案上的touch命令使用'-m'選項僅更改此檔案的修改時間:

$ touch -m linuxidc

stat命令的輸出現在顯示修改時間已更改為使用'-m'選項執行touch命令的時間:

6.如何將存取和修改時間從一個檔案複製到另一個檔案

我們假設有一個名為linuxidcA的檔案:

另一個名為linuxidcB的檔案:

如果要將linuxidcA的存取和修改時間更改為linuxidcB的存取和修改時間,可以使用如下touch命令:

$ touch linuxidcA -r sampleFileB

上圖中stat命令的輸出顯示linuxidcA現在具有與samplefileB相同的存取和修改值。

7.使用指定的時間戳建立新檔案

要建立具有指定時間戳的新空檔案而不是建立它的實際時間,可以使用touch命令的以下語法:

$ touch -t YYMMDDHHMM.SS “filename”

以下範例顯示了我的linuxidc上的stat命令如何顯示其存取和修改時間是基於我通過touch命令建立時提供的時間戳:

建立具有指定時間戳的新檔案

touch -t 2006151230.30 linuxidc

8.將檔案的時間戳更改為其他時間

您可以使用touch命令的以下語法將現有檔案的時間戳更改為其他時間:

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

touch -c -t 2008191130.30 linuxidc

在下面的範例中,我通過touch命令更改了現有檔案的時間戳,然後通過該範例檔案上的stat命令驗證了更改:

將檔案的時間戳更改為其他時間

通過我們在本文中介紹的基本但有用的場景,您可以開始掌握touch命令並使用它通過Linux命令列快速執行一些看似複雜的任務。


IT145.com E-mail:sddin#qq.com