GoogleDriveのドライブファイルストリームが便利で、大学のアカウントのものはこっちに乗り換えたのだが、WSLではlsが使えない。当然、bashなどのタブ補完も使えない。が、ディレクトリ名を手打ちすればcdはできるし、ファイル名を指定すればファイルにアクセスすることもできる。
$ ls
ls: reading directory '.': Function not implemented
なので、メッセージ通り、'reading directory'の機能が未実装ということらしい。そのうち実装してくれそうな気もするけど、とりあえず代用案。
alias lsg='/mnt/c/Windows/System32/cmd.exe /C dir'
これで、
$ lsg
ドライブ G のボリューム ラベルは Google Drive File Stream です
ボリューム シリアル番号は 1983-1116 です
G:\ のディレクトリ
2020/04/18 12:04 <DIR> 共有ドライブ
2020/04/18 12:04 <DIR> マイドライブ
0 個のファイル 0 バイト
2 個のディレクトリ 246,865,571,840 バイトの空き領域
という感じで、DOSのdirコマンドを呼ぶことができる(表示がおもいっきりダ(略)けど)。
とりあえずサマリとか要らなくてファイル(ディレクトリ)名だけわかればいい場合は、dir
に/B
オプションを付けて、
$ /mnt/c/Windows/System32/cmd.exe /C "dir /B"
共有ドライブ
マイドライブ
とするのもあり。
前後のサマリは固定形式なので、
$ /mnt/c/Windows/System32/cmd.exe /C dir | tail -n +6 | head -n -2
2020/04/18 12:04 <DIR> 共有ドライブ
2020/04/18 12:04 <DIR> マイドライブ
$
となるから、
alias lsg='/mnt/c/Windows/System32/cmd.exe /C dir | tail -n +6 | head -n -2'
でいいか。
この他、例えば mv a b なんかも利かないので、汎用的に
alias cmd='/mnt/c/Windows/System32/cmd.exe /C $*'
とかしておくと、mvの代わりに
cmd ren a b
で代用できたりはする。かなりイマイチだけど、とりあえずはなんとか使えそう。