回答:
Ubuntuはディレクトリのサイズを制限しません。ファイルシステムによって課されます。各ファイルとディレクトリは、いわゆるiノードです。使用df -i
して、すべてのマウントされたファイルシステムで使用可能なiノードの数を確認するために使用できます。
50 GB(46 GiB)のext4ホームパーティションのiノード制限が十分に大きいため、問題なく100万と1つのファイルを作成しました。
ファイルを作成するために、touch
ユーティリティと組み合わせてシェル拡張を使用しました。
mkdir test
cd test
touch {0..300000}
touch {300000..600000}
touch {600000..900000}
touch {900000..1000000}
これにより、1000001ファイルが作成されls | wc -l
ます。このファイルはで確認できます。なぜ300000..600000
ありませんか300001..600000
?私はその1を最後に置くのが面倒だったからです。
df -i
次のようになります。
/dev/sda6 3055616 1133635 1921981 38% /home
テストファイルを削除します(cd ..&&rm -f test
はるかに時間がかかったためrm
、ファイル名と共に使用します)。
rm {0..300000}
rm {300000..600000}
rm {600000..900000}
rm {900000..1000000}
cd ..
rmdir f
また、使用中のiノードの数は、ファイルを削除した直後に減少しました。
/dev/sda6 3055616 133634 2921982 5% /home
ファイルシステムがそのような多数のファイルを許可している場合でも、そのような大きなファイルを単一のディレクトリに保存するのは恐ろしい考えです。少なくとものような構造を持ついくつかのサブディレクトリを使用しますf/i/l/e/filename.ext
。多くの場合、プログラムはこのような大量のファイルを予期していません。
ext4
ファイルシステムの種類であり、ファイル拡張子ではありません。編集をキューに入れるためのディレクトリを作成できませんか?これらのプログラムは、このような大量のファイルでうまく実行できるとは思いません。