ROOTディレクトリからファイルを移動すると、データが失われます。

ROOTディレクトリからファイルを移動すると、データが失われます。

引っ越す前にカタログを確認してみると、すべてが入っていました。次に、次のコマンドを使用してCドライブ(WSLを使用)のディレクトリに移動しました。 sudo mv c_dir/ mnt/c/Users/L570/Documents/to_be_compiled/

cdに入ってみるとto_be_compiled明らかにそこにいた。しかし、それは空です。

他の質問でこのコマンドを見つけました chown erebus /mnt/c/Users/L570/Documents/to_be_compiled/c_dir/ が、それも何も変わりませんでした。

試してみましたが、ls -a実際にはファイルがありません。

Q:すべてのファイルを失いましたか?それとも権限の問題ですか?

ベストアンサー1

現在の情報に基づいて、私たち全員は、この事件で正確に何が起こったのか混乱しているという意見を言うのが安全だと思います。役立つ場合は、次のシナリオを使用してWSLのUbuntuで問題を再現することはできません。

cd /
sudo mkdir c_dir
cd c_dir
sudo touch abc 1 2 3
cd /
sudo mv c_dir/ mnt/c/Users/ntd/Documents/to_be_compiled

ディレクトリ名が正しい場所のディレクトリ/c_dirに変更(移動)され、すべてのファイルが存在します。to_be_compiled

つまり、最善の方法は、/使用する相対形式ではなく、完全修飾ディレクトリ名(で始まる)を使用することです。コマンドを実行すると、これらのファイルが作業ディレクトリに基づいて他の場所にあるかどうか疑問に思いますmv

実際の所有権と権限に注意してください。〜するで自動マウント設定を変更したかどうかによって異なります/etc/wsl.conf

デフォルトのWSLインストールを使用すると、これらのファイルはあなたが所有します。ユーザーWindowsドライブに移動すると、777の権限が付与されます。

鉱山は少し変わりました/etc/wsl.conf

[automount]
options = "metadata,umask=22,fmask=11"

これが完了すると、WSLは実際のLinuxの所有権と権限を模倣しようとするため、ファイルは権限644を使用してroot(移動されたため)所有されます。sudo

おすすめ記事