나는 몇 가지 정상적인 것을 시도했습니다.
$ 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
답변2
이것은 실제로 주석이지만 공간이 너무 제한되어 있습니다.
mv path1 path2 ... cp -r path1/subfolder/* path2/subfolder
이것들은 같은 것이 아닙니다. 전자는 그것이 디렉토리라고 가정하고 path1의 마지막 디렉토리 이름에 해당하는 이름으로 path2에 새 디렉토리를 생성합니다. 두 번째는 path2/subfilder의 path1/subfilder/에 있는 모든 파일의 재귀적 복사본을 생성합니다.
작업하려는 파일 시스템 권한 및 소유권, 기존 필수 액세스 제어 시스템에 대한 표시, 전후 경로 작동 방식에 대한 예를 제공하면 도움이 될 것입니다.
답변3
Windows 10에서는 심볼릭 링크를 생성하거나 mv하려면 높은 권한이 필요합니다. path1에 심볼릭 링크가 포함되어 있으면(관리자가 아닌 사용자에게 속하더라도) 에서 "권한 거부" 오류가 발생합니다 mv path1 path2
.