- 1 はじめに
- 2 検証環境
- 3 touchによるファイル作成
- 4 headによるファイル作成
- 5 fallocateによるファイル作成
- 6 truncateによるファイル作成
- 7 mktempによるファイル作成
- 8 bashのブレース展開によるファイル作成
- 9 スパースファイルの作成方法
- Z 参考情報
1 はじめに
各種方法でファイルを作成してみます。
2 検証環境
CentOS版数は以下のとおりです。
[root@server ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core)
カーネル版数は以下のとおりです。
[root@server ~]# uname -r 3.10.0-957.el7.x86_64
3 touchによるファイル作成
3.1 最も簡単な使い方
[root@server ~]# touch test.dat [root@server ~]# ls -l test.dat -rw-r--r--. 1 root root 0 5月 6 19:22 test.dat
3.2 ファイルの作成日時を指定する方法(-d)
現在日時を確認する。
[root@server ~]# date 2019年 5月 6日 月曜日 20:26:44 JST
10年前の日付のファイルを作成する。
[root@server ~]# touch -d "2009/5/6 00:00:00" test.dat [root@server ~]# ls -l test.dat -rw-r--r--. 1 root root 0 5月 6 2009 test.dat
本日の日付をファイル名の一部につける方法
[root@server file]# touch test-`date +%Y%m%d`.dat [root@server file]# ls test-20190507.dat
4 headによるファイル作成
10バイトのファイルを作成してみます。
[root@server ~]# head -c 10 /dev/zero > test.dat [root@server ~]# ls -l test.dat -rw-r--r--. 1 root root 10 5月 6 19:24 test.dat
1Kバイトのファイルを作成してみます。
[root@server ~]# head -c 1k /dev/zero > test.dat [root@server ~]# ls -l test.dat -rw-r--r--. 1 root root 1024 5月 6 19:27 test.dat
1Mバイトのファイルを作成してみます。
[root@server ~]# head -c 1m /dev/zero > test.dat [root@server ~]# ls -l test.dat -rw-r--r--. 1 root root 1048576 5月 6 19:26 test.dat
1Gバイトのファイルを作成してみます。
[root@server ~]# head -c 1G /dev/zero > test.dat [root@server ~]# ls -l test.dat -rw-r--r--. 1 root root 1073741824 5月 6 19:28 test.dat
5 fallocateによるファイル作成
10バイトのファイルを作成してみます。
[root@server ~]# fallocate -l 10 test.dat [root@server ~]# ls -l test.dat -rw-r--r--. 1 root root 10 5月 6 19:31 test.dat
1Kバイトのファイルを作成してみます。
[root@server ~]# fallocate -l 1K test.dat [root@server ~]# ls -l test.dat -rw-r--r--. 1 root root 1024 5月 6 19:32 test.dat
1Mバイトのファイルを作成してみます。
[root@server ~]# fallocate -l 1M test.dat [root@server ~]# ls -l test.dat -rw-r--r--. 1 root root 1048576 5月 6 19:32 test.dat
1Gバイトのファイルを作成してみます。
[root@server ~]# fallocate -l 1G test.dat [root@server ~]# ls -l test.dat -rw-r--r--. 1 root root 1073741824 5月 6 19:33 test.dat
6 truncateによるファイル作成
10バイトのファイルを作成してみます。
[root@server file]# truncate -s 10 test.dat [root@server file]# ls -l test.dat -rw-r--r--. 1 root root 10 5月 6 20:10 test.dat
1Kバイトのファイルを作成してみます。
[root@server file]# truncate -s 1K test.dat [root@server file]# ls -l test.dat -rw-r--r--. 1 root root 1024 5月 6 20:11 test.dat
1Mバイトのファイルを作成してみます。
[root@server file]# truncate -s 1M test.dat [root@server file]# ls -l test.dat -rw-r--r--. 1 root root 1048576 5月 6 20:12 test.dat
1Gバイトのファイルを作成してみます。
[root@server file]# truncate -s 1G test.dat [root@server file]# ls -l test.dat -rw-r--r--. 1 root root 1073741824 5月 6 20:12 test.dat
7 mktempによるファイル作成
7.1 引数なしで実行する方法
引数なしでmktempを実行すると、/tmpにユニークな名前のファイルが作成されます。
[root@server file]# mktemp /tmp/tmp.HDtemULeBT [root@server file]# ls -l /tmp/tmp.HDtemULeBT -rw-------. 1 root root 0 5月 6 19:48 /tmp/tmp.HDtemULeBT
7.2 ディレクトを指定する方法
/test配下にユニークな名前のファイルを作成してみます。
[root@server ~]# mkdir /test [root@server ~]# mktemp --tmpdir=/test /test/tmp.mX10XnDlDN [root@server ~]# ls -l /test/tmp.mX10XnDlDN -rw-------. 1 root root 0 5月 6 19:55 /test/tmp.mX10XnDlDN
8 bashのブレース展開によるファイル作成
8.1 単純な方法
[root@server file]# touch test_{1..10}.dat [root@server file]# ls -l 合計 0 -rw-r--r--. 1 root root 0 5月 6 19:39 test_1.dat -rw-r--r--. 1 root root 0 5月 6 19:39 test_10.dat -rw-r--r--. 1 root root 0 5月 6 19:39 test_2.dat -rw-r--r--. 1 root root 0 5月 6 19:39 test_3.dat -rw-r--r--. 1 root root 0 5月 6 19:39 test_4.dat -rw-r--r--. 1 root root 0 5月 6 19:39 test_5.dat -rw-r--r--. 1 root root 0 5月 6 19:39 test_6.dat -rw-r--r--. 1 root root 0 5月 6 19:39 test_7.dat -rw-r--r--. 1 root root 0 5月 6 19:39 test_8.dat -rw-r--r--. 1 root root 0 5月 6 19:39 test_9.dat
8.2 桁をそろえる方法
[root@server file]# touch test_{01..10}.dat [root@server file]# ls -l 合計 0 -rw-r--r--. 1 root root 0 5月 6 19:38 test_01.dat -rw-r--r--. 1 root root 0 5月 6 19:38 test_02.dat -rw-r--r--. 1 root root 0 5月 6 19:38 test_03.dat -rw-r--r--. 1 root root 0 5月 6 19:38 test_04.dat -rw-r--r--. 1 root root 0 5月 6 19:38 test_05.dat -rw-r--r--. 1 root root 0 5月 6 19:38 test_06.dat -rw-r--r--. 1 root root 0 5月 6 19:38 test_07.dat -rw-r--r--. 1 root root 0 5月 6 19:38 test_08.dat -rw-r--r--. 1 root root 0 5月 6 19:38 test_09.dat -rw-r--r--. 1 root root 0 5月 6 19:38 test_10.dat
8.3 アルファベットと組み合わせる方法
[root@server file]# touch test_{1..3}-{a..c}.dat [root@server file]# ls -l 合計 0 -rw-r--r--. 1 root root 0 5月 6 19:40 test_1-a.dat -rw-r--r--. 1 root root 0 5月 6 19:40 test_1-b.dat -rw-r--r--. 1 root root 0 5月 6 19:40 test_1-c.dat -rw-r--r--. 1 root root 0 5月 6 19:40 test_2-a.dat -rw-r--r--. 1 root root 0 5月 6 19:40 test_2-b.dat -rw-r--r--. 1 root root 0 5月 6 19:40 test_2-c.dat -rw-r--r--. 1 root root 0 5月 6 19:40 test_3-a.dat -rw-r--r--. 1 root root 0 5月 6 19:40 test_3-b.dat -rw-r--r--. 1 root root 0 5月 6 19:40 test_3-c.dat
9 スパースファイルの作成方法
9.1 truncateで作る方法
1Gバイトのファイルを作成してみます。 ファイルサイズは1Gであることがわかります。
[root@server file]# truncate -s 1G test.dat [root@server file]# ls -l test.dat -rw-r--r--. 1 root root 1073741824 5月 6 20:16 test.dat
ファイルが消費しているディスク量を確認してみます。 ファイルサイズは1Gですが、実際にファイルが消費している ディスク量は0バイトであることがわかります。
[root@server file]# du test.dat 0 test.dat
Z 参考情報
私が業務や記事執筆で参考にした書籍を以下のページに記載します。 Linux技術のスキルアップをしよう! - hana_shinのLinux技術ブログ