ls コマンドの出力を GitHub 風にするためのエイリアス

```bash
alias ls='LC_COLLATE=C ls --group-directories-first'
```

## ちょっと説明

GitHubやBitBucketのディレクトリ表示（POSIXのソート順）に慣れてくると、自分の環境の`ls`コマンドの表示結果との違いに  :open_mouth: となることがあります。たとえばこういうのは、

```
$ ls -al
total 66464
drwxr-xr-x 18 ubuntu ubuntu     4096 Mar 10 10:12 .
drwxr-xr-x  3 root   root       4096 Feb  1 19:03 ..
drwxrwxr-x  8 ubuntu ubuntu     4096 Mar  1 08:52 Apps
-rw-rw-r--  1 ubuntu ubuntu      148 Feb 23 11:29 .bash_aliases
-rw-------  1 ubuntu ubuntu    51385 Mar 10 10:15 .bash_history
-rw-r--r--  1 ubuntu ubuntu      220 Apr  9  2014 .bash_logout
-rw-r--r--  1 ubuntu ubuntu     3867 Mar 10 10:12 .bashrc
drwxrwxr-x  2 ubuntu ubuntu     4096 Feb 24 12:57 bin
drwx------  2 ubuntu ubuntu     4096 Feb  1 19:03 .cache
drwx------  3 ubuntu ubuntu     4096 Feb  2 07:02 .config
-rw-rw-r--  1 ubuntu ubuntu      340 Feb  9 10:51 Dockerfile
drwxrwxr-x  6 ubuntu ubuntu     4096 Mar  4 15:37 Downloads
-rw-rw-r--  1 ubuntu ubuntu      719 Mar  3 09:36 .functions
-rw-rw-r--  1 ubuntu ubuntu       83 Feb  5 14:17 .gitconfig
drwxrwxr-x  3 ubuntu ubuntu     4096 Feb 22 13:29 go
-rw-r--r--  1 ubuntu ubuntu     1065 Feb 18 18:15 .profile
drwxrwxr-x 14 ubuntu ubuntu     4096 Mar  4 10:07 Projects
-rw-rw-r--  1 ubuntu ubuntu       75 Feb  2 17:06 .selected_editor
drwx------  2 ubuntu ubuntu     4096 Feb  1 23:42 .ssh
drwxrwxr-x  4 ubuntu ubuntu     4096 Feb  6 10:49 tmp
-rw-rw-r--  1 ubuntu ubuntu      257 Feb 18 18:39 .tmux.conf
-rw-rw-r--  1 ubuntu ubuntu       54 Feb 17 09:13 tmux-client-5500.log
drwxr-xr-x  2 ubuntu ubuntu     4096 Mar  3 16:52 .vim
-rw-------  1 ubuntu ubuntu    17049 Mar 10 10:12 .viminfo
-rw-------  1 ubuntu ubuntu       61 Feb 12 23:32 .Xauthority
```

1. ディレクトリ->ファイル
2. 大文字->小文字
3. 隠しファイル（ドットファイル）->通常ファイル

の順に並べて欲しいわけです。こんなふうに。

```
$ ls -al
total 65M
drwxr-xr-x 18 ubuntu ubuntu 4.0K Mar 10 10:12 .
drwxr-xr-x  3 root   root   4.0K Feb  1 19:03 ..
drwx------  2 ubuntu ubuntu 4.0K Feb  1 19:03 .cache
drwx------  3 ubuntu ubuntu 4.0K Feb  2 07:02 .config
drwx------  2 ubuntu ubuntu 4.0K Feb  1 23:42 .ssh
drwxr-xr-x  2 ubuntu ubuntu 4.0K Mar  3 16:52 .vim
drwxrwxr-x  8 ubuntu ubuntu 4.0K Mar  1 08:52 Apps
drwxrwxr-x  6 ubuntu ubuntu 4.0K Mar  4 15:37 Downloads
drwxrwxr-x 14 ubuntu ubuntu 4.0K Mar  4 10:07 Projects
drwxrwxr-x  2 ubuntu ubuntu 4.0K Feb 24 12:57 bin
drwxrwxr-x  3 ubuntu ubuntu 4.0K Feb 22 13:29 go
drwxrwxr-x  4 ubuntu ubuntu 4.0K Feb  6 10:49 tmp
-rw-------  1 ubuntu ubuntu   61 Feb 12 23:32 .Xauthority
-rw-rw-r--  1 ubuntu ubuntu  148 Feb 23 11:29 .bash_aliases
-rw-------  1 ubuntu ubuntu  51K Mar 10 10:12 .bash_history
-rw-r--r--  1 ubuntu ubuntu  220 Apr  9  2014 .bash_logout
-rw-r--r--  1 ubuntu ubuntu 3.8K Mar 10 10:12 .bashrc
-rw-rw-r--  1 ubuntu ubuntu  719 Mar  3 09:36 .functions
-rw-rw-r--  1 ubuntu ubuntu   83 Feb  5 14:17 .gitconfig
-rw-r--r--  1 ubuntu ubuntu 1.1K Feb 18 18:15 .profile
-rw-rw-r--  1 ubuntu ubuntu   75 Feb  2 17:06 .selected_editor
-rw-rw-r--  1 ubuntu ubuntu  257 Feb 18 18:39 .tmux.conf
-rw-------  1 ubuntu ubuntu  17K Mar 10 10:12 .viminfo
-rw-rw-r--  1 ubuntu ubuntu  340 Feb  9 10:51 Dockerfile
-rw-rw-r--  1 ubuntu ubuntu   54 Feb 17 09:13 tmux-client-5500.log
```

冒頭に書いたエイリアスでも十分ですが、見た目にも優しくなるので自分は以下のようなエイリアスを設定しています。

```bash
alias ls='LC_COLLATE=C ls --color=auto --human-readable --group-directories-first'
```

## Macの方は

`--group-directories-first`オプションはGNU Coreutilsの`ls`コマンド限定のオプションなので、

```bash
brew install coreutils
alias ls='LC_COLLATE=C /usr/local/bin/gls --group-directories-first'
```

などとしてみるとよさそうです（未検証）。