歡迎來到我們關於如何在 Linux 中使用 truncate 命令的教程。 Linux truncate 命令通常用於將每個 FILE 的大小縮小或擴展到指定的大小。 文件的最終大小取決於初始大小。 如果一個文件(對於 example 存檔或日誌文件)大於指定的大小,額外的數據會丟失,但如果文件更短,它會被擴展並且擴展部分(洞)讀取為零字節。
顯示的命令在 CentOS 7 機器和 Ubuntu 16.04 服務器上進行了測試。 大多數 Linux 發行版都附帶 truncate 命令。 如果您的系統沒有 truncate 命令,對於 Ubuntu/Debian 系統,它由 coreutils 包提供。
$ sudo apt-get install coreutils
$ dpkg -l | grep coreutils
coreutils 8.25-2ubuntu3~16.04 amd64 GNU core utilities
對於 CentOS 7:
# yum provides truncate
coreutils-8.22-18.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts
Repo : base
Matched from:
Filename : /usr/bin/truncate
如果未安裝,請使用:
$ sudo yum-y install coreutils
常見的截斷選項
-c, --no-create --> do not create any files
-o, --io-blocks --> treat SIZE as number of IO blocks instead of bytes
-r, --reference=RFILE --> base size on RFILE
-s, --size=SIZE --> set or adjust the file size by SIZE bytes
--help --> display this help and exit
--version --> output version information and exit
使用 truncate 時, 尺寸 參數必須是整數和可選單位(example: 10K 是 10*1024)。 使用的單位是 K、M、G、T、P、E、Z、Y (1024 的權力)或 KB、MB,…(作為 1000 的冪)。
SIZE 參數也可以以下列修飾字符之一作為前綴:’+‘擴展,’——‘減少,’<‘ 最多, ‘>‘ 至少, ‘/‘ 向下舍入到的倍數,’%‘ 向上取整為多個。
截斷用法示例
下面是 truncate 命令最常見的使用示例。
1.用truncate清除文件內容
# truncate -s 0 file
這對於例如清除日誌文件很有用。 這比手動刪除文件並可能對新文件進行觸摸要好。 截斷過程基本上刪除了文件的所有內容。 它不會刪除文件本身,而是將其作為零字節文件保留在磁盤上。 作為 example,讓我們清除我們的 /var/日誌/系統日誌 使用截斷到 0 字節。
# du -sh /var/log/syslog
616K /var/log/syslog
# truncate -s 0 /var/log/syslog
如果我們再次檢查文件大小,它應該是 0 字節。
# du -sh /var/log/syslog
0 /var/log/syslog
請注意,truncate 命令將保留文件權限和所有權。 您可以通過使用確認 ls -lh 命令:
# ls -lh /var/log/syslog
-rw-r----- 1 syslog adm 0 Mar 17 18:34 /var/log/syslog
2. 將文件截斷到特定大小
這 example 下面將把文件截斷為 100 字節的大小。
# touch file.txt
# ls -lh file.txt
-rw-r--r-- 1 root root 0 Mar 17 18:39 file.txt
# truncate -s 100 file.txt
現在檢查文件大小:
# ls -lh 文件.txt
-rw-r–r– 1 root root 100 Mar 17 18:40 file.txt
要將文件截斷為 100 KB:
# truncate -s 100K file.txt
# ls -lh file.txt
-rw-r--r-- 1 root root 100K Mar 17 18:41 file.txt
根據需要,可以使用 M、G、T、P、E、Z 和 Y 代替“K”。
3. 使用 truncate 擴展文件大小
您也可以將文件的大小從當前擴展到所需狀態。 使用選項 -s 與 + 在尺寸方面。
$ touch file.txt
$ truncate -s 100K file.txt
$ ls -lh file.txt
-rw-r--r-- 1 jmutai wheel 100K Mar 18 13:12 file.txt
$ truncate -s +200K file.txt
$ ls -lh file.txt
-rw-r--r-- 1 jmutai wheel 300K Mar 18 13:12 file.txt
這將通過添加額外的 200K 將文件大小從 100K 擴展到 300K。
4. 使用 truncate 減小文件大小
假設您有一個 500K 的文件並希望將其縮小為 250K。 您將使用 -s 選項與 —— 在指定的大小。 例如
$ ls -lh file.txt -rw-r--r-- 1 jmutai wheel 500K Mar 18 13:15 file.txt
$ truncate -s -250K file.txt
$ ls -lh file.txt
-rw-r--r-- 1 jmutai wheel 250K Mar 18 13:15 file.txt
您可以看到當前大小更改為 250K。
結論
本教程,希望能幫助您了解 Linux truncate 命令將文件更改為指定大小。 請在下面的評論部分分享您的建議和想法。