成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在 Linux 上使用 Bash 創建一個臨時文件

系統 Linux
基于 Fedora 的系統上的 mktemp 命令和基于 Debian 的系統上的 tempfile 是專門為減輕這種負擔而設計的,它使創建、使用和刪除獨特的文件變得容易。

使用 Bash 腳本語言進行編程時,有時需要創建一個臨時文件。例如,你可能需要一個可以提交到磁盤的中間文件,以便你可以使用另一個命令對其進行處理。創建諸如 ??temp??? 之類的文件或任何以 ??.tmp??? 結尾的文件很容易。但是,這些名稱很可能是由其他進程生成的,因此你可能會不小心覆蓋現有的臨時文件。除此之外,你不應該花費腦力想出看起來獨特的名字。基于 Fedora 的系統上的 ??mktemp??? 命令和基于 Debian 的系統上的 ??tempfile?? 是專門為減輕這種負擔而設計的,它使創建、使用和刪除獨特的文件變得容易。

創建一個臨時文件

??mktemp??? 和 ??tempfile?? 都創建一個臨時文件作為它們的默認操作,并打印文件的名稱和位置作為輸出:

    $ tempfile
/tmp/fileR5dt6r
$ mktemp
/tmp/tmp.ojEfvMaJEp

除非你指定不同的路徑,否則系統會將臨時文件放在 ??/tmp?? 目錄中。

對于 ??mktemp???,可以使用 ??-p?? 選項指定路徑:

    $ mktemp -p ~/Demo
/home/tux/Demo/tmp.i8NuhzbEJN

對于 ??tempfile???,可以使用 ??--directory??? 或 ??-d?? 選項:

    $ tempfile --directory ~/Demo/
/home/sek/Demo/fileIhg9aX

找到你的臨時文件

使用自動生成的臨時文件的問題是你無法知道它的名字是什么。這就是為什么兩個命令都返回生成的文件名作為輸出的原因。你可以使用 Konsole、GNOME 終端或 ??rxvt?? 等交互式 shell 來使用終端上顯示的文件名與文件進行交互。

但是,如果你正在編寫腳本,則無法通過讀取文件名并在以下命令中使用它來進行干預。

??mktemp??? 和 ??tempfile?? 的作者想到了這個問題,并且有一個簡單的解決方法。終端將輸出發送到名為“標準輸出”的流。你可以通過將變量設置為在子 shell 中啟動的命令的結果來捕獲標準輸出:

    $ TMPFILE=$(mktemp -p ~/Demo)
$ echo $TMPFILE
/home/tux/Demo/tmp.PjP3g6lCq1

引用文件時使用 ??$TMPFILE??,它與直接與文件本身交互相同。

使用 mktemp 創建一個臨時目錄

你還可以使用 ??mktemp?? 命令創建目錄而不是文件:

    $ mktemp --directory -p ~/Demo/
/home/tux/Demo/tmp.68ukbuluqI
$ file /home/tux/Demo/tmp.68ukbuluqI
/home/tux/Demo/tmp.68ukbuluqI: directory

自定義臨時名稱

有時你甚至可能希望在偽隨機生成的文件名中加入可預測性元素。你可以使用這兩個命令自定義臨時文件的名稱。

使用 ??mktemp??,你可以為文件名添加后綴:

    $ mktemp -p ~/Demo/ --suffix .mine
/home/tux/Demo/tmp.dufLYfwJLO.mine

使用 ??tempfile??,你可以設置前綴和后綴:

    $ tempfile --directory ~/Demo/ --prefix tt_ --suffix .mine
/home/tux/Demo/tt_0dfu5q.mine

把 tempfile 作為 touch 使用

你還可以使用 ??tempfile?? 設置自定義名稱:

    $ tempfile --name not_random
not_random

當你使用 ??--name??? 選項時,它是絕對的,忽略所有其他形式的自定義。事實上,它甚至忽略了 ??--directory?? 選項:

    $ tempfile --directory ~/Demo --prefix this_is_ --suffix .all --name not_random_at
not_random_at

在某種程度上,??tempfile??? 可以替代 ??touch??? 和 ??test??,因為它拒絕創建已經存在的文件:

    $ tempfile --name example.txt
open: file exists

??tempfile??? 命令并非默認安裝在所有 Linux 發行版上,因此在將其用作腳本中的 ??test?? 的 hack 之前,你必須確保它存在。

安裝 mktemp 和 tempfile

??GNU Core Utils??? 包括 ??mktemp??? 命令。主要發行版默認包括 Core Utils(它是包含 ??chmod???、??cut???、??du?? 和其他基本命令的同一個軟件包)。

Debian Utils 軟件包包含 ??tempfile?? 命令,默認安裝在大多數基于 Debian 的發行版和 Slackware Linux 上。

總結

臨時文件很方便,因為不會混淆它們是否可以安全刪除。它們是臨時的,意在根據需要使用并毫不猶豫地丟棄。在需要時使用它們,并在完成后清除它們。

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2009-08-10 09:57:05

2021-04-14 10:25:19

電腦磁盤微軟

2009-10-15 15:14:54

VB.NET臨時文件

2021-07-30 07:57:53

Windows 操作系統微軟

2010-10-14 15:29:56

MySQL服務器

2017-09-06 14:58:57

Oracle數據文件臨時文件

2009-11-02 10:03:28

VB.NET臨時文件

2010-01-15 17:51:51

VB.NET創建臨時文

2021-04-14 15:25:39

Linux加密文件保險庫

2009-08-26 17:11:03

MySQL臨時文件

2019-02-19 09:00:45

Linux創建文件命令

2023-06-08 15:15:45

Windows 10Windows 11微軟

2020-05-09 12:01:40

Linux開源軟件SDN

2015-03-03 13:28:21

實例動態網頁靜態緩存

2021-09-08 08:36:50

ncursesLinux猜謎游戲

2019-05-23 14:36:24

LinuxSOSReportxsos

2009-07-16 17:26:11

WebWork文件上傳

2020-08-31 08:51:10

Linux轉儲文件內存

2021-08-19 18:28:22

FedoraLinuxOpenCV

2024-10-09 09:12:11

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 婷婷一级片 | 91在线网站 | 亚洲精选一区二区 | 国产一区在线免费观看视频 | 国产精品九九九 | 久久99久久99精品免视看婷婷 | 久久国产三级 | 91视频在线网站 | 国产精品18久久久 | 男女网站免费观看 | 粉嫩一区二区三区国产精品 | 美女久久久久 | 在线观看成人小视频 | 亚洲最大福利网 | 中文二区| 91人人爽 | 日韩综合在线 | 性色av一区二区三区 | 久色视频在线 | 成人国产在线观看 | 成人亚洲精品久久久久软件 | 日韩中出 | 国产乱码精品一区二区三区忘忧草 | 亚洲精品日韩精品 | 99国内精品 | 国产精品揄拍一区二区久久国内亚洲精 | 久久久久久毛片免费观看 | 国产精品明星裸体写真集 | 精品一区二区在线视频 | 99亚洲综合 | 欧美日本一区二区 | av片在线免费看 | 国产视频一区在线 | 亚洲www. | 日韩久久精品电影 | 欧美群妇大交群中文字幕 | 91 在线 | 色爱综合网 | 国产激情一区二区三区 | 免费a级毛片在线播放 | 久久久免费在线观看 |