「mv」フォルダに対する権限がない理由を見つける簡単な手順

「mv」フォルダに対する権限がない理由を見つける簡単な手順

私はいくつかの普通のことを試しました。

$ mv path1 path2

mv: cannot move
'path1/subfolder/' to 'path2/subfolder': Permission denied

最初は存在しないので、 のpath2フォルダツリーにコピーする必要があります。 Aは、すべてのファイルとフォルダへの読み取り/書き込みアクセス権があることを示します。path1path2find path1 -lspath1

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

これが発生する唯一の理由は、次の条件がすべて真の場合です。

  1. path1path2同じファイルシステムにありません。df path1(または親フォルダから)を実行してそれを確認し、df path2同じパーティションにないことを確認できます。すべて同じパーティションにある場合、mvコマンドはディレクトリツリー全体を繰り返し移動しようとせず、サブファイルとディレクトリを移動せずに名前のみを変更しますpath1path2
  2. path1このユーザーまたはグループには書き込み権限がありません。ファイルシステム内のすべてのファイルとフォルダへの読み取り/書き込みアクセス権があると述べましたがpath1、別のファイルシステムに移動するには、そのファイルシステム自体(または直接の子孫ではない)がpath1必要です。path1subfoldersubfolderpath

あなたはそのアイテムを削除したので、path1今は確認できません。コピー後にフォルダへのアクセスが可能だと言われますがrm、途中である時点で権限を変更した可能性があるため、証明できません。しかし、そのような問題はないでしょう。

一般的に言えば、あなたが私たちに話していないいくつかの詳細があるかもしれませんし、あなたが見逃したか関係がないと思ったいくつかの詳細があるかもしれません。しかし、もう一度申し上げますが、今すぐこれを確認することは不可能です。特にあなたが使用したので(必要に応じてcp -r権限を保持しない)、再びすべてのファイルとフォルダに対する元の権限が何であるかを確認することはできません。-a-p

おすすめ記事