フォルダを再作成せずにフォルダメタデータサイズをリセットする方法は?

フォルダを再作成せずにフォルダメタデータサイズをリセットする方法は?

フォルダ(watch)に多数の一時ファイルが誤って入力されています。ファイルをすべて消去しましたが、フォルダサイズはまだ356kBです。以前は、フォルダを別の場所に移動して同じ名前の新しいフォルダを作成し、すべてのファイルをそのフォルダにコピーして以前の小さなサイズに戻しました。フォルダを再作成せずに小さいサイズに戻す方法はありますか?

drwxr-xr-x 2 apache apache   4096 Nov 29  2014 details
drwxr-xr-x 2 apache apache 364544 Jan 21 17:24 watch
drwxr-xr-x 3 apache apache   4096 Jan 21 17:19 settings

watch.htaccessとindex.phpという2つの小さなファイルがあります。

ext4ファイルシステムがあります。

ベストアンサー1

e4fsck-D必要に応じて動作するように見えるサポートフラグ:

ファイルシステムがディレクトリインデックスをサポートしている場合は、ディレクトリを再インデックスするか、小さいディレクトリまたは既存の線形ディレクトリを使用するファイルシステムのディレクトリをソートして圧縮して、すべてのディレクトリを最適化してみてください。

もちろん、ファイルシステムを使用するにはマウントを解除する必要がありますfsck。これはサーバーがダウンしていることを意味します。

ファイルシステムがきれいであってもファイルシステムが処理されるようにする-fには、このオプションを使用する必要があります。e4fsck

テスト:

# truncate -s1G a; mkfs.ext4 -q ./a; mount ./a /mnt/1
# mkdir /mnt/1/x; touch /mnt/1/x/{1..4000}
# ls -ld /mnt/1/x
drwxr-xr-x 2 root root 69632 Nov 22 12:54 /mnt/1/x/
# rm -f /mnt/1/x/*
# ls -ld /mnt/1/x
drwxr-xr-x 2 root root 69632 Nov 22 12:55 /mnt/1/x/
# umount /mnt/1
# e2fsck -f -D ./a
e2fsck 1.43.3 (04-Sep-2016)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 3A: Optimizing directories
Pass 4: Checking reference counts
Pass 5: Checking group summary information

./a: ***** FILE SYSTEM WAS MODIFIED *****
./a: 12/65536 files (0.0% non-contiguous), 12956/262144 blocks
# mount ./a /mnt/1
# ls -ld /mnt/1/x
drwxr-xr-x 2 root root 4096 Nov 22 12:55 /mnt/1/x/

おすすめ記事