일반적으로 말해서, 파일 이동을 취소하면 대상 또는 소스가 불완전 할 수 있음을 알면 당황하게됩니다. 이 질문은 Windows 및 Unix 기반 플랫폼에 적용됩니다. 두 경우 모두 이동 명령이 어떻게 작동하는지 정확하게 기억할 수 없습니다. 예를 들어 디렉토리를 이동하는 경우; 전체 디렉토리를 복사 한 후 삭제하거나 각 파일을 개별적으로 복사 및 삭제합니까?
나는 항상 같은 것을 입력 한 후에 mv verybigdir dest
아마도 입력해야했을 것임을 알고 있습니다 cp -R verybigdir dest && rm -R verybigdir
( &&
첫 번째가 성공한 경우에만 운영자가 다음 명령으로 진행합니다). 내가 누를 때 무슨 일이, 정확히 어떻게 Ctrl+ C이동을 통해 반 방법을? 마찬가지로 취소 버튼을 누르면 Windows에서 정확히 어떻게됩니까?
나는 무언가를 옮긴 횟수 (마지막 시간은 사용했을 때)를 세고 svn
디렉토리가 분할되어 두 개의 디렉토리를 가졌습니다. 모든 응용 프로그램 이 동일한 방식으로 파일 그룹을 이동하는 것은 아니기 때문에 대답이 어렵다고 생각합니다 .
답변
Windows에서 동일한 드라이브와 파티션으로 이동하면 Unix의 mv 명령처럼 작동하고 폴더 이름을 바꾸거나 상위 폴더를 변경합니다. 그러나 다른 드라이버 나 파티션으로 옮기려면 파일별로 파일을 복사하고 삭제하므로 압축되지 않은 tar 파일이나 zip 파일을 사용하여 파티션과 하드 드라이브간에 파일을 더 빠르게 이동시키는 것이 더 효율적인 이유 . 당신이 그것을 취소한다면, 그것은 단순히 그 위치에서 멈출 것입니다. 유닉스에서도 마찬가지라고 생각하지만 100 % 확신 할 정도로 실험하지는 못했습니다. inode를 변경하기 만하면되지만 다른 파티션이나 드라이브에있는 경우 해당 파티션이나 드라이브의 섹터로 복사해야합니다. 전송 중에 취소하면 이미 일부 파일을 이동했을 수 있으며 전송중인 파일에 해당 파일이 표시됩니다.
업데이트 : 이동을 취소하고 다시 시작하려면 이동 명령을 다시 발행하십시오. 대상 폴더가 이미 존재하지만 파일이 전송 되 자마자 파일이 원래 폴더에서 삭제되기 때문에 파일이 원래 폴더 이전에 존재하지 않거나 두 이동 순서 사이에 추가되지 않는 한 파일을 덮어 쓰지 않음을 경고 할 수 있습니다. 소스 (다른 파티션 또는 드라이브에있는 경우).
답변
타임 스탬프에 관심이 있다면 mv
평범한 것보다 낫습니다 cp
.
( cp -a
타임 스탬프를 유지하고 Windows에 비슷한 것이 있다고 가정합니다).
답변
아니.
설명:
mv verybigdir dest
verybigdir의 이름을 dest로 바꿉니다. 이것은 원자 작업입니다. 즉, 중간에 실패 할 수 없습니다.
dest가 다른 장치에 있으면 mv가 먼저 복사 한 다음 이전 버전을 삭제합니다. 이것은 원자 작업이 아닙니다. 실패하면, debig에 verybigdir의 일부 사본 만있을 수 있지만 verybigdir은 여전히 완료됩니다.
예, 다른 응용 프로그램은 파일을 다르게 이동할 수 있습니다.
답변
Windows에서는 항상 이동 대신 복사 및 삭제합니다. 나는 한 번 파일을 이동하고 있었고, 이것이 처음으로 나쁜 메모리 스틱을 발견 한 곳입니다. 파일을 이동할 때 사이에 멈추고 오류가 발생하여 소스 폴더를 확인하고 파일이 사라진 다음 대상을 확인하고 손상된 파일이있었습니다. 이것은 더 큰 크기의 파일에서 더 자주 발생했으며 대부분은 다운로드에 시간이 걸리므로 복사 및 삭제를 권장합니다. 처음에는 시간을 절약하고 결국에는 돈을 지불합니다.
답변
유닉스에서는 파일 시스템 경계를 넘지 않는 이동 mv
에서 데이터를 복사하지 않습니다. 다양한 디렉토리에서 inode 데이터베이스 만 업데이트합니다. 이것은 큰 파일 보다 훨씬 빠릅니다 cp
.
또한 mv
파일 시스템 경계 를 넘어서 사용 하면 복사 및 삭제 메커니즘이 자동으로 호출됩니다.
그래서 당신이 선호한다고 생각합니다 mv
.
답변
Windows에서 최소한 이동은 단순히 자동화 된 복사 및 삭제입니다. mv는 각 파일을 개별적으로 이동한다고 생각합니다. ^ c-ing은 파일을 잃지 않을 것입니다.
이것에 대한 나의 해결책은 : 나는 그것을 옮기고 싶지 않다면 절대로 움직이지 마십시오.
답변
소스 파일 시스템에서 ACL을 사용하지만 대상에서는 사용하지 않는 경우 Linux의 mv는 소스를 복사 한 다음 대상에서 ACL을 설정할 수 없기 때문에 중지됩니다. 따라서 파일이 양쪽에있게됩니다. 이 동작을 막기 위해 mv에는 스위치가 없으므로이 경우에는 cp && rm이 바람직합니다.