cpを使用して〜/ .configを外部ドライブにコピーしましたが、「一般ファイルを作成できません...ファイルが存在します」エラーが発生する

cpを使用して〜/ .configを外部ドライブにコピーしましたが、「一般ファイルを作成できません...ファイルが存在します」エラーが発生する

/mnt/eコマンドは非常に簡単で、外部ドライブのサブディレクトリですcp -r ~/.config .。毎回、毎回実行しましたが、同じファイルセットが正しくコピーされませんでした。

cp: cannot create regular file './.config/yarn/global/node_modules/ws/lib/validation.js': File exists cp: cannot create regular file './.config/yarn/global/node_modules/ws/lib/websocket.js': File exists cp: cannot create regular file './.config/yarn/global/node_modules/ws/lib/sender.js': File exists cp: cannot create regular file './.config/yarn/global/node_modules/ws/lib/constants.js': File exists cp: cannot create regular file './.config/yarn/global/node_modules/ws/lib/receiver.js': File exists cp: cannot create regular file './.config/yarn/global/node_modules/debug/Readme.md': File exists

コマンドが実行されると、ファイルは確かに存在せず、パラメーターを追加しても-f違いはありません。ところでここで状況が変になります。システムはファイルをコピーしますが、結果的に非常に異なる内容になります。これらの違いは、破損​​したコピーでは説明できません。このReadme.mdファイルの違いを実行すると:

diff -u ~/.config/yarn/global/node_modules/debug/Readme.md ./.config/yarn/global/node_modules/debug/Readme.md

出力で次の2行が見つかりました。

- Note that PowerShell using different syntax to set environment variables. + Note that PowerShell uses different syntax to set environment variables.

ここで何が起こっているのでしょうか? !コピーを実行すると、ファイルの更新されたバージョンを取得するのと同じです。問題は、コマンドを実行するたびにその特定のファイルで同じ違いが発生することです。これは意味がありません。

明らかに私は少し圧倒されました。私は答えを読んだ。汎用ファイル 'filename'を作成できません。ファイルが存在します。しかし、理解できません。strace答えのスクリプトを試しましたが、壁にぶつかりました(追跡ファイルは生成されません)。私は生のLinuxユーザーであり、「本物の」Linuxも使用せずにWSL(Ubuntu 16.04)を使用しています。ここで問題が何であるかを簡単な用語で説明できる人はいますか?明らかに、あるプロセスが邪魔しているようです。推測できますが、それ以外は何も知りません。

修正する:

問題は、ソースサブディレクトリに名前が同じですが、大文字と小文字が異なるファイル(Validation.js、WebSocket.jsなど)があることです。問題は、WSLユーザーとしてWindowsでフォーマットされたドライブにコピーするため、大文字と小文字を区別するサブディレクトリがサポートされていないことです。しかし、おおよその調査によると、Windows 10バージョン1803(私が持っている)から、NTFSファイルシステムで大文字と小文字を区別するサブディレクトリが可能であることがわかりました。また、WSLで生成されたサブディレクトリは自動的に大文字と小文字を区別します(協会):

Linux用のWindowsサブシステム(Bashシェル)で実行されているLinuxツールは、大文字と小文字の区別フラグ付きのフォルダを作成できるようになりました。したがって、mkdir コマンドを使用して Bash シェル内にディレクトリを作成するか、開発ツールがディレクトリを作成するかにかかわらず、作成されたディレクトリは、インストールされた Windows ファイルシステムで作成しても自動的に大文字と小文字を区別します。

WSLでターゲットサブディレクトリを作成せず、削除してWSLで再作成しました。しかし、私の問題は存在してはいけませんが、まだ存在します。どんなアイデアがありますか?

ベストアンサー1

おすすめ記事