在 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的檔案,其中qYhg9f是mktemp生成的唯一字尾。
您還可以使用-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命令將其刪除。