0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

概要

これはMacで遊んでいるナード向けのMac整理ルールです。個人的な備忘録の側面が強いですが、皆様からのアドバイス等頂きたいと思いましたので共有します。

カテゴライズ・シミュレーション

最初に頭の中で、今パソコンで扱っているファイルと将来的に扱う可能性のあるファイルがどのようにカテゴライズされるか把握しておくことが肝要です。整理術に関するネット記事はたくさんありますが、開発者やナードでなければ開発環境構築の話は不必要ですし、営業や請負をしていないのであればクライアント用のフォルダを用意する必要もありません。事前に自分専用のおおよそのファイル分類体系を脳内に構築しておきましょう。

$HOMEを乱さない

Unix系のOSではなにかソフトウェアをインストールすると、そのソフトウェアが$HOMEディレクトリ内にディレクトリを作成しそこをソフトウェアの幹(設定ファイル、コード、依存ライブラリ、キャッシュ etc.)として利用する場合が多いです。これを放置すると$HOMEディレクトリがそれらディレクトリで溢れ返り、ユーザーの認知負荷が高くなってしまいます。$HOMEディレクトリから積極的にフォルダを削減するように努めましょう。

XDG仕様への準拠

例外もありますが、多くのソフトウェアがXDG仕様に準拠しています(または準拠可能な仕様になっています)。積極的にXDG仕様に準拠させることでMac内が整頓されます。

環境変数の利用

XDG仕様に準拠可能な仕様となっているソフトウェアでは、そのソフトウェアが利用するディレクトリを環境変数で設定できるようになっている場合があります。その場合はそれを利用しXDG仕様に準拠させましょう。

xdg-ninjaの利用

$HOMEにあるディレクトリで環境変数によって別の場所へ移動可能なものを教えてくれるソフトウェアです。brew info xdg-ninjaをチェック。

must-have dirs

以下にMac内で設定した方がいいディレクトリを列挙します。

メイン

実際にはソフトウェアをインストールすると勝手に作成されるものが含まれているので、能動的に作成というよりはむしろ、勝手に作成されてしまうディレクトリをその流儀に従う形で積極的に利用してやろうということです。

~/.config 設定ファイルを格納するディレクトリです。
~/.local ここは主にサードパーティソフトウェアが利用するディレクトリです。 go, cargo, bunなどの主要なソフトウェアのディレクトリはここに直接配置し、それ以外のサードバーティソフトウェアは~/.local/optに格納しています。
~/.local/share ソフトウェアが利用するデータが格納されます。
~/.local/opt XDG仕様にはこのディレクトリはありませんが、Macで/optや/usr/local/optが利用されていることに倣って、~/.local配下にoptを設置してそこにサードパーティソフトウェアの本体を格納しています。

~/Library/Application Supportディレクトリの利用について

MacではサードパーティーアプリがXDG仕様に従い各種ファイルを分散配置(~/.config, ~/.local/share etc.)するケースと~/Library/Application Supportにバンドルディレクトリを作成して利用するケースとがあります。ここは統一できませんが、どちらも直接ユーザーがいじる頻度は低いのでそこまで問題ではありません。個人的なアプリ開発でどちらのディレクトリを利用するかという話ですが、私の場合はfoobarアプリを作成する場合~/Library/Application Supoort配下にlocal.foobarのような名前でディレクトリを作り利用しています。

その他

全部紹介しきれてはいません。

~/Developer 昔のMacではデフォルトで作成されていたディレクトリだそうですが、最近のMacではありません。自分で mkdir して利用可能になります。~/Developer ディレクトリはFinderで歯車アイコンで表示されます。個人プロジェクト・個人開発環境用のディレクトリとして用いています。私の場合、ターミナルでの利便性を考え ~/dev にこのディレクトリのシンボリックリンクを貼っています。
~/orgs 個人的なファイルと区別するため、組織関係のファイルはここに格納しています。学校や会社の資料など。
~/var ~/Documents に格納している各種論文・PDF以外の個人的なデータのほとんどはこのディレクトリに格納しています。各種バックアップなどをここに入れています。

各種binの置き場

ターミナルで日常的に使う実行ファイル・対話的コマンドの置き場は、それらの属性に基づいて別々にしておくと混乱を避けられます。まず、/usr/localはHomebrewに占領されているので、/usr/local/binはHomebrewでインストールしたコマンドオンリーにしておくのが無難です。次に、Homebrew以外のサードパーティの実行ファイルは~/.local/binに入れることにします。そして、個人開発した実行ファイルは~/dev/binに入れて.zshrc.bashrcでパスを通して利用します。

READMEファイルの利用

README.mdでもREADME.txtでもどちらでも構わないのですが、READMEファイルをディレクトリに配置しておくと都合がいいです。

  • 用途が分かる
    READMEファイルの存在により、そのディレクトリの用途が一目瞭然になります。
  • 長いパス名を避けられる
    READMEファイルに用途を書いておけば、多少パス名が短すぎて一見用途が分からなくても問題になりません。

シンボリックリンクの利用

同じファイルやフォルダを複数のプロジェクトから参照したい場合、シンボリックリンク(symlink)は便利です。

Finder で作成できる symlink とターミナル上でln -sコマンドを用いて作成できる symlink とは仕様が異なっており、それぞれ長所・短所があります。

後者はターミナル上でls -lコマンドを実行した際に実際のパスがリンク先として表示されて便利な反面、相対パスを設定していた場合、場所を不適切な場所に移動してしまうとその symlink は動かなくなる場合があります。

前者は場所を移動してもリンク先のファイルへの参照が無効になることはありませんが、ターミナル上ではls -lを実行してもその symlink のリンク先が表示されることはありません。

タグ付けとスマートフォルダの利用

参考資料


0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?