ディレクトリを再帰的に辿ってファイルのチェックサム(md5sum)を計算する方法

特定のディレクトリ以下にある全てのファイルについて md5sum を計算するワンライナーです

find -type f -print0  | xargs -0 md5sum > md5sum.txt

コマンドの意味は

  • find で再帰的にディレクトリを探索して
  • 全てのファイル名をstdoutに出力 (-type f)
  • xargs でファイル名を受け取って md5sum コマンドを起動
  • 結果を md5sum.txt に保存

してます

ディレクトリ名やファイル名に空白が含まれている場合にも対応させるために find に -print0 をつけて xargs -0 で受け取るのがポイントです

空白が含まれてない場合は -print0 と -0 を外したワンライナーで十分です

find -type f | xargs md5sum > md5sum.txt

/run/user/$UID ディレクトリのサイズを大きくする方法

systemd 以前の"古い"Linuxでは、テンポラリディレクトリといえば /tmp で、環境変数 $TMPDIR が /tmp を指していました。

systemd 以降の今どきのLinuxは、テンポラリディレクトリは /run/user/$UID であり、環境変数 $XDG_RUNTIME_DIR が/run/user/$UIDを指すようになっています。

/run/user/$UID の実体は tmpfs 、つまり ram disk です。
login時に systemd の logind が /run/user/$UID を作成し、環境変数 XDG_RUNTIME_DIR を設定しています。

/run/user/$UID の上限サイズは設定ファイル /etc/systemd/logind.conf で設定されています。

# RuntimeDirectorySize=10%

デフォルトでは搭載メモリの10%までが /run/user/$UIDとして利用可能です。

一時的に /run/user/$UID ディレクトリのサイズを大きくする方法

mount でremountすればサイズを変更できます。すでに存在しているファイルは消えずに、そのまま残ります。

$ sudo mount -o remount,size=32G,noatime /run/user/1234

恒久的に /run/user/$UID ディレクトリのサイズを大きくする方法

例えば50%までメモリを使いたい場合は /etc/systemd/logind.conf

RuntimeDirectorySize=50%

とします

設定は次回ログイン時から反映されます。ログアウトすると今ある /run/user/$UID は削除され
新しいUIDで/run/user/$UIDが作成されます。