subst R: .
フォルダにアクセスするより高速な方法を使用しました。
R:
WSLに「ドライバ」をインストールできますか?実行しようとすると、sudo mkdir /mnt/r
次のsudo mount -t ntfs R: /mnt/r
エラーが発生します。
ntfs-3g: Failed to access volume 'R:': No such file or directory
ntfs-3g 2017.3.23AR.3 integrated FUSE 28 - Third Generation NTFS Driver
Configuration type 7, XATTRS are on, POSIX ACLS are on
Copyright (C) 2005-2007 Yura Pakhuchiy
Copyright (C) 2006-2009 Szabolcs Szakacsits
Copyright (C) 2007-2017 Jean-Pierre Andre
Copyright (C) 2009 Erik Larsson
Usage: ntfs-3g [-o option[,...]] <device|image_file> <mount_point>
Options: ro (read-only mount), windows_names, uid=, gid=,
umask=, fmask=, dmask=, streams_interface=.
Please see the details in the manual (type: man ntfs-3g).
Example: ntfs-3g /dev/sda1 /mnt/windows
News, support and information: http://tuxera.com
よろしくお願いします!
StackOverflowに同じ質問をしましたが、正しい場所ではないことに気づきました...
ベストアンサー1
WSLはそうではありませんが、自動でも直接ドライブにアクセスするには、subst
ドライブをマッピングする方法がいくつかあります。特定のワークフローに応じて選択できるさまざまなパスがあります。
覚えておくべき主な点は次のとおりです。
Linuxでは
sudo mount --bind . /mnt/r
ほぼ同じですsubst R: .
。 Linuxに対応する必要があり、Windowsが同じドライブ文字にアクセスする必要がない場合、これはおそらく必要なものです。subst
Windows機能と非常によく似たbash機能を作成することもできます。つまり、
bind
ここには多少の過剰がある可能性があります。たとえば、ln -s /mnt/c/Users/username ~/r
宛先の場所に対する権限がある限り、ルートは必要ありません。Windowsを使用して作成したマッピングの場合は、PowerShellを呼び出してLinuxで指定されたパスを取得できます
subst
。たとえば、次のようになります。subst
powershell.exe -c subst
grep
とsed
: を使用して、これを R: マッピングでのみフィルタリングできますpowershell.exe -c "subst" | grep "^R" | sed "s/^R:\\\\: => //"
(複数のドライブ/ディレクトリがある場合は、subst
R: ドライブのみを検索し、ディレクトリ パスの前のすべてのエントリを削除します)。PowerShellは追加の改行( " \ r ")を返すため、次のようなものを使用する必要があります
tr -d "\r"
。次のコマンドを使用して、Windowsパスを同等のLinux / WSLパスに変換できます
wslpath
。
それらを組み合わせると、R:を次に変換できるスクリプトがあります/mnt/r
(または~/r
それがより便利な場合)。
rpath=$(powershell.exe -c "subst" | grep "^R" | sed "s/^R:\\\\: => //" | tr -d "\r")
sudo mount --bind $(wslpath "${rpath}") /mnt/r/
またはそれに対応するln
。
もちろん、繰り返しやすくするために機能に割り当てる必要があります。