Truncate命令一般用於將文件縮小或擴展到指定的大小。若是文件大於指定的大小,則會丟失額外的數據。若是文件較短,則會對其進行擴展,而且擴展部分的讀數爲零字節。
系統環境
Centos7shell
安裝
一般操做系統會安裝truncate命令,該命令在coreutils安裝包裏面,若是沒有安裝能夠使用下面命令安裝:ide
[root@localhost ~]# yum provides truncate
Loaded plugins: fastestmirror, product-id, search-disabled-repos, subscription-manager操作系統
This system is not registered with an entitlement server. You can use subscription-manager to register.日誌
Loading mirror speeds from cached hostfileserver
coreutils-8.22-24.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts
Repo : base
Matched from:
Filename : /usr/bin/truncateip
coreutils-8.22-24.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts
Repo : @anaconda
Matched from:
Filename : /usr/bin/truncate
如何在Linux中使用 Truncate 命令如何在Linux中使用 Truncate 命令
能夠看到truncate由coreutils安裝包提供,下面安裝coreutils安裝包:it
[root@localhost ~]# yum -y install coreutils
truncate經常使用選項
下面是truncate的經常使用選項:io
-c, --no-create --> 不建立任何文件
-o, --io-blocks --> 將大小視爲存儲塊的數量,而不是字節
-r, --reference=RFILE --> 參考指定的文件大小
-s, --size=SIZE --> 按照指定的字節設置文件大小
使用truncate清除文件內容
這對於清除日誌文件頗有用。truncate過程基本上刪除了文件的全部內容。它不會刪除文件自己,但會將它做爲零字節文件保留在磁盤上。例如,讓咱們使用truncate將/var/log/yum.log清除爲0個字節。ast
[root@localhost ~]# du -sh /var/log/yum.log
12K /var/log/yum.log
[root@localhost ~]# truncate -s 0 /var/log/yum.log
如何在Linux中使用 Truncate 命令如何在Linux中使用 Truncate 命令
再次查看這個文件,發現字節爲0了。查看內容是空的了。test
[root@localhost ~]# du -sh /var/log/yum.log
0 /var/log/yum.log
[root@localhost ~]# cat /var/log/yum.log
如何在Linux中使用 Truncate 命令如何在Linux中使用 Truncate 命令
truncate命令將保留文件全部權。能夠使用ll -h命令進行確認:
[root@localhost ~]# ll -h /var/log/yum.log
-rw-------. 1 root root 0 Nov 4 18:39 /var/log/yum.log
如何在Linux中使用 Truncate 命令如何在Linux中使用 Truncate 命令
使用truncate將文件設置爲指定大小
下面的示例將文件填充爲10K個字節。
[root@localhost ~]# touch file.txt
[root@localhost ~]# ll -h file.txt
-rw-r--r--. 1 root root 0 Nov 4 18:43 file.txt
[root@localhost ~]# truncate -s 10k file.txt
[root@localhost ~]# ll -h file.txt
-rw-r--r--. 1 root root 10K Nov 4 18:43 file.txt
單位有 K, M, G, T, P, E, Z, Y。
使用truncate擴展文件大小
也能夠將文件的大小從當前擴展到所需狀態。使用-s選項,在數字前面加上+
[root@localhost ~]# cat /etc/passwd > file.txt
[root@localhost ~]# ll -h file.txt
-rw-r--r--. 1 root root 1009 Nov 4 18:47 file.txt
[root@localhost ~]# truncate -s +200k file.txt
[root@localhost ~]# ll -h file.txt
-rw-r--r--. 1 root root 201K Nov 4 18:47 file.txt
如何在Linux中使用 Truncate 命令如何在Linux中使用 Truncate 命令
經過添加額外的200K,這會將文件大小從1K擴展到201K。
使用truncate減少文件大小
假設有一個500K的文件,而且但願將其縮小到250K。將使用-s選項,在數字前面加上-
[root@localhost ~]# touch file.txt
[root@localhost ~]# truncate -s 500k file.txt
[root@localhost ~]# ll -h
total 4.0K
-rw-------. 1 root root 1.3K Dec 29 2019 anaconda-ks.cfg
-rw-r--r--. 1 root root 500K Nov 5 08:36 file.txt
drwxr-xr-x. 5 root root 107 Nov 4 18:22 test
[root@localhost ~]# truncate -s -250k file.txt
[root@localhost ~]# ll -h
total 4.0K
-rw-------. 1 root root 1.3K Dec 29 2019 anaconda-ks.cfg
-rw-r--r--. 1 root root 250K Nov 5 08:36 file.txt
drwxr-xr-x. 5 root root 107 Nov 4 18:22 test
如何在Linux中使用 Truncate 命令如何在Linux中使用 Truncate 命令
能夠看到當前大小更改成250K。
總結Truncate命令一般用於將文件縮小或擴展到指定的大小。若是文件大於指定的大小,則會丟失額外的數據。若是文件較短,則會對其進行擴展,而且擴展部分的讀數爲零字節。