私はいくつかの普通のことを試しました。
$ mv path1 path2
mv: cannot move
'path1/subfolder/' to 'path2/subfolder': Permission denied
最初は存在しないので、 のpath2
フォルダツリーにコピーする必要があります。 Aは、すべてのファイルとフォルダへの読み取り/書き込みアクセス権があることを示します。path1
path2
find path1 -ls
path1
元diff -qr path1 path2
のディスプレイはpath1/subfolder
移動されませんでした。しかし、再帰的にコピー:
mkdir path2/subfolder
cp -r path1/subfolder/* path2/subfolder
# Confirm that original subtree and copy are identical
diff -qr path1 path2 # Reveals that the two are identical
問題を解決しましたが説明できない動作が気に入りませんでした。原因を突き刺す簡単な方法はありますか? Bashスクリプトを書かないので簡単だという意味です。私はちょうどコマンドラインで使用します。
Windows 10でCygwinを使用しています。このアカウントは管理者以外のアカウントです。すべてのファイルとフォルダはこのアカウントの所有です。フォルダの削除を防ぐことができるOfficeアプリケーションやMatlabなどのゾンビプロセスがないことを確認しました。問題は、読み取りアクセスやその他の理由によって発生する可能性が最も高いです。回避策が示すように、ターゲットツリーへの書き込みアクセス権は確かにありません。私もできるので、rm -r path1
問題は元のツリーへの書き込みアクセスではありません。
遅延 これはもはや持っていないことを意味するので、トラブルシューティングのpath1
提案を試すことは困難です。しかし、私はまだ提案に開いています。
ベストアンサー1
これが発生する唯一の理由は、次の条件がすべて真の場合です。
path1
path2
同じファイルシステムにありません。df path1
(または親フォルダから)を実行してそれを確認し、df path2
同じパーティションにないことを確認できます。すべて同じパーティションにある場合、mv
コマンドはディレクトリツリー全体を繰り返し移動しようとせず、サブファイルとディレクトリを移動せずに名前のみを変更しますpath1
。path2
path1
このユーザーまたはグループには書き込み権限がありません。ファイルシステム内のすべてのファイルとフォルダへの読み取り/書き込みアクセス権があると述べましたがpath1
、別のファイルシステムに移動するには、そのファイルシステム自体(または直接の子孫ではない)がpath1
必要です。path1
subfolder
subfolder
path
あなたはそのアイテムを削除したので、path1
今は確認できません。コピー後にフォルダへのアクセスが可能だと言われますがrm
、途中である時点で権限を変更した可能性があるため、証明できません。しかし、そのような問題はないでしょう。
一般的に言えば、あなたが私たちに話していないいくつかの詳細があるかもしれませんし、あなたが見逃したか関係がないと思ったいくつかの詳細があるかもしれません。しかし、もう一度申し上げますが、今すぐこれを確認することは不可能です。特にあなたが使用したので(必要に応じてcp -r
権限を保持しない)、再びすべてのファイルとフォルダに対する元の権限が何であるかを確認することはできません。-a
-p