Linuxでtruncateコマンドを使用する方法に関するチュートリアルへようこそ。 Linuxのtruncateコマンドは、各FILEのサイズを指定されたサイズに縮小または拡張するためによく使用されます。ファイルの最終的なサイズは、イニシャルによって異なります。 FILE(アーカイブファイルやログファイルなど)が指定されたサイズよりも大きい場合、余分なデータは失われますが、FILEが短い場合、それは拡張され、拡張された部分(穴)はゼロバイトとして読み取られます。
示されているコマンドは、CentOS7マシンとUbuntu16.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
切り捨てを使用する場合、サイズ 引数は整数でオプションの単位である必要があります(例:10Kは10 * 1024です)。使用される単位はK、M、G、T、P、E、Z、Y (1024の累乗)または KB、MB 、...(1000の累乗として)。
SIZE引数の前に、次の変更文字のいずれかを付けることもできます:' + '拡張、' - '減らす、' < 'せいぜい、' > '少なくとも、' / 'の倍数に切り捨て、' % 'の倍数に切り上げます。
切り捨ての使用例
以下は、truncateコマンドの最も一般的な使用例です。
1。切り捨てを使用してファイルの内容をクリアする
# truncate -s 0 file
これは、たとえばログをクリアするファイルに役立ちます。これは、ファイルを手動で削除して、新しいファイルを修正するよりも優れています。切り捨てプロセスは、基本的にファイルのすべての内容を削除します。ファイル自体は削除されませんが、ゼロバイトファイルとしてディスクに残されます。例として、 / var / log / syslogをクリアしましょう。 切り捨てを使用して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。ファイルを特定のサイズに切り捨てるには
以下の例では、ファイルを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 file.txt
-rw-r--r--1ルートルート100Mar17 18:40 file.txt
ファイルを100KBに切り捨てるには:
# truncate -s 100K file.txt
# ls -lh file.txt
-rw-r--r-- 1 root root 100K Mar 17 18:41 file.txt
必要に応じて、「K」の代わりにM、G、T、P、E、Z、Yを使用できます。
3。切り捨てでファイルサイズを拡張する
ファイルのサイズを現在の状態から目的の状態に拡張することもできます。オプション-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。切り捨てでファイルサイズを減らす
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の切り捨てコマンドを理解するのに役立つことを願っています。以下のコメントセクションであなたの提案や考えを共有してください。