ホームディレクトリを構造化するためのヒント(2023年)
(unixdigest.com)ホームディレクトリ構造のヒント
- ディレクトリの構造化や整理は、他の物事の構造化や整理と大きくは変わらず、自分にとって最も理にかなった方法で行うことが重要
- 整理を扱う際は、非常に短時間で手に負えない状態になりうる
- 整理の主な目的は効率性であり、探したいものを簡単かつ素早く見つけられ、保存すべきものを簡単かつ素早く保存できる必要がある
隠し標準ファイルとディレクトリ
- 自分のホームディレクトリには、
.config、.aliases、.profile、.gnupg、.mozillaなど、現代の Unix 系オペレーティングシステムの一部である標準的な隠しファイルが一通りある - すべてのアプリケーションが XDG_CONFIG_HOME を尊重してくれるのが望ましいが、その点にあまり干渉したり気にしすぎたりはしない
- 以前は Git で $HOME を管理しており、これは Dotfiles を構成する優れた方法
- 変更履歴を維持するため、今でもすべての Dotfiles を Git に入れているが、利用しているさまざまなシステムで同じように動作する Dotfiles だけをそのまま残している
- 設定ごとの Dotfiles は
dotfilesディレクトリに保管し、シンボリックリンクを使う
一般的なファイルおよびディレクトリの構成
- 一般的なファイルとディレクトリは、主に「カテゴリ」と「日付」の2つの方法で構成する
- 基本ディレクトリ構造:
bindataedatamntusr/dotfiles
DesktopとDownloadsディレクトリはそのままにしている(ほとんどのアプリケーションがそれを前提にしているようなので)binディレクトリにはシェルスクリプトと個人用バイナリ実行ファイルを保管する(パッケージマネージャー経由でインストールしたものは除く)mntディレクトリは、SD カード、USB ディスク、ホームラボで使う共有ストレージなど、さまざまなマウントポイントに使う- 自動マウントは決して使わず、マウント用のシェルスクリプトを使う
usr/dotfilesディレクトリは.aliasesのような一般的な Dotfiles とともに Git で管理し、dotfilesディレクトリ内の関連ファイルへのシンボリックリンクを使う
データディレクトリの構成
dataとedataディレクトリは、すべての資料を保管する2つの主要ディレクトリ- この2つのディレクトリは、ルートインストールとは別に、ディスクミラーリングプール上で動作する ZFS データセット
- ZFS を活用し、スナップショットや ZFS の send / receive を定期的に使って、ネットワークストレージへ簡単にバックアップしている
dataとedataの違いは、edataが ZFS のネイティブ暗号化データセットである点- 暗号化はプライバシーに有効だが、すでに複雑なファイルシステム階層の上にさらに厄介な複雑さの層を重ねるものであり、ZFS の暗号化にはバグもある
- 重要なデータは、常に複数の異なる保存手段と場所にバックアップすることを強く推奨する
- 重要なものにはクラウドストレージを使わない
追加のヒント
- ファイル名およびディレクトリ名の基本ルールは、名前を見るだけでそれが何かを簡単に識別できるようにすること
- ファイルを開いてみないとそのファイルが何についてのものかわからないなら、すぐに開いて確認し、次にそのファイル名を見たときにより意味のある名前へ変更すべき
- ファイルやディレクトリを整理せず放置すると、後から修正するのが非常に難しくなる
- ファイルを開かなくても内容を把握できるよう、必要に応じて長い説明を含んだファイル名を使う
GN⁺の意見
-
この記事は、ディレクトリ構造を整理し構成する方法について実用的なヒントを提供している。特に ZFS データセットを活用して、暗号化されたディレクトリと暗号化されていないディレクトリを分けて管理する方法が興味深い。
-
個人的には、重要なデータは暗号化して保管するのがよいと考える。ただし、暗号化による性能低下や複雑性の増加といった欠点もあるため、状況に応じて選択的に使うのがよさそうだ。
-
また、暗号化されたデータへのアクセス方法を家族と共有しておくことも重要なポイントだと思う。事故などで自分がアクセスできなくなったとしても、データを失わないようにする必要がある。
-
個人データ管理のためには、著者のように体系的なバックアップ戦略を立てることが非常に重要。321 バックアップルールに従いつつ、クラウドストレージよりも物理的に分散したローカルストレージを活用するのもよい方法に見える。
-
個人データ整理に役立つオープンソースツールとしては、Syncthing や Nextcloud などがある。こうしたツールをうまく活用すれば、体系的で安全な個人データ管理が可能になるだろう。
1件のコメント
Hacker Newsの意見
以下はHacker Newsのコメントを要約した内容です:
~/goが問題だと指摘されている。GOPATHの設定で解決できるが、望ましくないデフォルト値だという意見である。xdg-ninjaというツールを使うと、ほとんどのアプリケーションが XDG 標準に従うよう設定でき、ホームディレクトリの整理に役立つ。.configフォルダにアプリケーションがセッションデータをギガバイト単位で保存するため、バックアップ時に苦労する。設定とセッションデータは分離されるべきだという意見である。日付-説明.txtまたはキーワード-タイトル-日付.txt形式を使うことができる。~/dotfilesはドットファイルを管理する Git リポジトリとして使い、ホームディレクトリにシンボリックリンクを作ると便利である。~/projectsはプロジェクトごとにサブディレクトリを作って管理し、~/tmpは一時ファイルを保存する場所として活用できる。Web サイトや Markdown でノートを整理するのも良い方法である。