在 Linux 中建立臨時檔案


介紹

在 Linux 中,經常需要為各種目的建立臨時檔案,例如在處理過程中儲存中間資料或儲存指令碼的配置資訊。臨時檔案通常建立在/tmp目錄中,這是大多數 Linux 系統上儲存臨時檔案的標準位置。

在 Linux 中建立臨時檔案

在 Linux 中建立臨時檔案的方法有多種。最常見的方法之一是使用mktemp命令,該命令建立唯一臨時檔案並將檔名列印到控制檯。

語法

要使用mktemp建立臨時檔案,請使用以下語法。

$ mktemp [options] [template]

模板引數是一個字串,指定臨時檔案的檔名和位置,可以使用XXXXXX作為mktemp將生成的唯一字尾的佔位符。選項引數是可選的,可用於指定各種選項,例如建立檔案的目錄或檔案上要設定的許可權。

在 tmp 目錄中建立隨機臨時檔案

建立臨時檔案最簡單的方法是執行mktemp命令而不帶任何引數。如果您在不帶任何引數的情況下執行mktemp命令,它將在預設臨時檔案目錄(通常為/tmp)中建立一個唯一臨時檔案,並使用tmp.XXXXXX的預設模板。

$ mktemp

這將建立一個類似於/tmp/tmp.qhgG9f的檔案。

您還可以使用-q選項來抑制mktemp命令的輸出,並將檔名儲存在變數中。

$ temp_file=$(mktemp -q)
$ echo "Temporary file: $temp_file"

這將建立一個類似於/tmp/tmp.qhgG9f的臨時檔案,並將檔名儲存在temp_file變數中。然後,echo命令會將檔名列印到控制檯。

指定目錄和許可權

要指定建立臨時檔案的其他目錄,請使用-d選項。

$ mktemp -d /my/custom/dir/temp.XXXXXX

這將在/my/custom/dir目錄中建立一個類似於temp.qhgG9f的臨時檔案。

$ mktemp -d /my/custom/dir/temp.XXXXXX

您還可以使用-p選項為檔名指定字首,如下所示:

$ mktemp -p /my/custom/dir mytemp.XXXXXX

這將建立一個類似於/my/custom/dir/mytemp.qhgG9f的檔案。

指定臨時檔案的模板

要在/tmp目錄中建立具有唯一字尾和預設許可權的臨時檔案,可以使用以下命令:

$ mktemp /tmp/temp.XXXXXX

這將建立一個類似於/tmp/temp.qYhg9f的檔案,其中qYhg9fmktemp生成的唯一字尾。

您還可以使用-t選項指定包含XXXXXX佔位符的模板,如下所示:

$ mktemp -t temp.XXXXXX

這將在預設臨時檔案目錄(通常為/tmp)中建立一個類似於temp.qYhg9f的檔案。

建立多個臨時檔案

要一次建立多個臨時檔案,請使用-u選項,後跟具有多個XXXXXX佔位符例項的模板。

$ mktemp -u /tmp/temp1.XXXXXX /tmp/temp2.XXXXXX

這將建立兩個臨時檔案,檔名類似於/tmp/temp1.qhgG9f/tmp/temp2.qhgG9f

檢查臨時檔案的狀態

建立臨時檔案後,您可能希望檢查其狀態以確保已成功建立。您可以使用stat命令顯示有關檔案的資訊,包括其大小、許可權和建立日期。

要使用stat,請將檔名指定為引數,如下所示:

$ stat /tmp/temp.qhOs8Q

這將顯示有關檔案的資訊,包括其大小、許可權和建立日期。

刪除臨時檔案

完成臨時檔案後,最好將其刪除以釋放磁碟空間並防止混亂。您可以使用rm命令刪除檔案,如下所示

$ rm /tmp/temp.qhOs8Q

這將永久刪除該檔案,因此請確保在刪除之前不再需要該檔案。

mktemp 輸出和檔案狀態

以下是如何使用mktemp命令的示例:

示例

$ mktemp /tmp/temp.XXXXXX
/tmp/temp.qhgG9f
$ stat /tmp/temp.qhgG9f
   File: /tmp/temp.qhgG9f
   Size: 0     Blocks: 0    IO Block: 4096    regular empty file
Device: 802h/2050d Inode: 1234   Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ user) Gid: ( 1000/ user)
Access: 2022-12-16 11:07:35.000000000 -0500
Modify: 2022-12-16 11:07:35.000000000 -0500
Change: 2022-12-16 11:07:35.000000000 -0500
   Birth: -
$ rm /tmp/temp.qhgG9f

在此示例中,mktemp 命令在/tmp目錄中建立一個具有唯一字尾的臨時檔案

在 Bash 指令碼中使用 mktemp

建立臨時檔案後,您可以像使用系統上的任何其他檔案一樣使用它。完成檔案後,可以使用rm命令將其刪除。

示例

以下是如何建立臨時檔案然後顯示其內容的示例:

# Create the temporary file and store its path in a variable
temp_file=$(mktemp)
# Write some content to the file
echo "This is a temporary file" > $temp_file
# Display the contents of the file
cat $temp_file
# Remove the temporary file
rm $temp_file

此程式碼將建立一個臨時檔案,向其中寫入字串“This is a temporary file”,顯示檔案的內容,然後刪除檔案。此程式碼的輸出將為:

輸出

This is a temporary file

結論

在 Linux 中,可以使用mktemp命令輕鬆建立臨時檔案。透過指定模板和可選選項,您可以在所需位置並以所需的許可權建立唯一臨時檔案。然後,您可以使用stat命令檢查檔案的狀態,並在不再需要時使用rm命令將其刪除。

更新於:2023年1月12日

6K+ 次檢視

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告