Windows의 xcopy 명령은 데이터를 백업하는 안전한 수단을 제공합니까?

Windows의 xcopy 명령은 데이터를 백업하는 안전한 수단을 제공합니까?

최근에 xcopy 명령을 사용하여 내 컴퓨터의 데이터를 백업했습니다. 백업 파일과 디렉터리 중 일부를 간단히 살펴보았는데 원본과 똑같아 보였습니다. 그러나 일부 사람들이 xcopy 대신 백업 마법사를 사용한다는 것을 알고 있으며 xcopy가 데이터를 백업하는 안전한 수단을 제공하는지 궁금합니다.

Windows 명령 프롬프트 터미널에 다음 명령을 입력했습니다.

xcopy [원본] [대상] /s /e /v

내 소스는 내 하드 드라이브의 홈 디렉터리였습니다. (내 하드 드라이브는 파티션되지 않았고 홈 디렉터리는 하나만 있습니다.) 내 대상은 플래시 드라이브에 생성될 새 디렉터리였습니다. 명령을 입력한 후 대상이 디렉터리인지 파일인지 묻는 질문에 디렉터리를 표시했습니다. 하위 디렉터리를 복사하려면 "/s" 옵션을 사용했습니다. 나는 빈 디렉토리를 복사하기 위해 "/e" 옵션을 사용했습니다. 모든 복사본이 원본과 동일한지 확인하기 위해 "/v" 옵션을 사용했습니다. 복사할 암호화된 파일이 없습니다.

내 명령에 포함된 매개변수의 경우 올바른 순서는 "/s /e /v"라고 생각합니다. 그러나 이것이 내가 사용한 순서인지는 확실하지 않습니다. 이러한 매개변수의 순서가 중요합니까?

내 소스가 내 홈 디렉터리였기 때문에 내 컴퓨터에 소프트웨어 백업을 생성하지 않았다는 것을 알고 있습니다. 하지만 저는 소프트웨어가 아닌 데이터만 백업하고 싶었습니다.

숨겨진 파일을 복사하는 "/h" 옵션이 있다는 것을 알고 있습니다. 내 데이터 중 어느 것도 숨겨진 파일에 없기 때문에 이 옵션을 포함하지 않았으며 숨겨진 파일을 그대로 두는 것이 가장 좋다고 읽었습니다. 숨김 파일은 운영 체제 및 프로그램을 실행할 목적으로 Windows에서 생성되며 사용자가 의도치 않게 조작하지 않도록 숨겨져 있음을 이해합니다.

컴퓨터에 Ubuntu를 설치할 예정이므로 데이터를 백업했습니다. 안전을 위해 각각 다른 플래시 드라이브에 여러 개의 백업을 만들었습니다. 나는 정기적으로 데이터를 백업해야 한다는 것을 이해하고 있으며 Ubuntu를 설치한 후에 그렇게 할 계획입니다. 내 데이터는 Windows 디렉터리에 저장되므로 Ubuntu에서 내 데이터에 액세스하려면 Wine을 사용해야 할 수도 있다는 것을 이해합니다.

설치를 시도하기 전에 xcopy 명령을 사용하는 방법이 안전한지 물어봐야 한다고 생각했습니다. 내 명령이 내 홈 디렉터리의 모든 데이터를 복사해야 합니까? 파일이나 하위 디렉터리가 올바르게 복사되지 않은 경우 프로세스가 중지되고 오류 메시지가 표시됩니까? 대신 백업 마법사를 사용해야 할 이유가 있나요?

감사합니다.

답변1

이 문제를 좀 더 연구한 결과, 제가 게시한 xcopy 명령을 먼저 실행한 후 다음 명령을 실행하는 것이 해결책이라고 생각합니다.

에코 %ERRORLEVEL%

나는 위의 명령이 xcopy에 의해 생성된 오류 수준을 출력할 것이라고 생각합니다. echo 명령의 출력이 0이면 xcopy 실행에 오류가 없었고 복사가 성공했음을 의미합니다.

내 xcopy 명령에는 "/s /e /v" 속성이 포함되어 있으므로 모든 하위 디렉터리와 해당 내용이 복사되고 복사본이 원본과 동일한지 확인됩니다.

다음 소스에서 "echo %ERRORLEVEL%" 명령에 대해 알아냈습니다.

https://www.computerhope.com/jargon/e/erroleve.htm#testing-errorlevel

플래시 드라이브에서 최근 백업을 삭제하고, 제가 설명한 xcopy 명령을 사용하여 새 백업을 생성하고, echo 명령을 실행했습니다. echo 명령은 0 값을 반환했는데, 이는 복사본을 만드는 데 오류가 없었다는 뜻이라고 생각합니다. 그래서 저는 복사가 성공했다고 믿습니다.

@SenorCMasMas: robocopy 사용에 대한 귀하의 제안을 시도해 보았습니다. 그러나 robocopy 명령은 "dir /a"를 입력해야만 볼 수 있는 디렉터리에서 파일을 전송했습니다. 나는 이것이 시스템 파일과 숨겨진 파일이었을 것이라고 생각합니다. Robocopy가 숨겨진 디렉터리에서 특정 파일을 전송하는 중에 멈춰서 "Ctrl-C"를 눌러 프로세스를 중단했습니다. 파일을 전송하려면 관리자 권한이 필요했을 것 같습니다. 하지만 데이터만 백업하고 싶고 시스템 파일과 숨김 파일은 전송하고 싶지 않기 때문에 관리자 권한으로 명령 프롬프트를 실행해 보지 않았습니다. 나는 robocopy가 "/xa:" 매개변수와 함께 사용될 때 특정 유형의 파일 전송을 제외할 수 있다는 것을 이해합니다. 이 매개변수를 사용하여 시스템 파일과 숨겨진 파일을 제외하려고 시도했지만 robocopy는 여전히 숨겨진 디렉터리에서 파일을 전송한 다음 그러한 파일 중 하나에 갇히게 됩니다. 시스템 파일을 제외하려면 "/xa:s", 숨겨진 파일을 제외하려면 "/xa:h", "/xa:sh" 및 "/xa:s /xa:h"를 시도했습니다. 매번 같은 문제가 발생했습니다.

나는 robocopy에 대해 좀 읽었으며 이 명령의 주요 장점은 이전에 전송된 디렉터리와 파일을 변경하지 않고 디렉터리와 파일을 전송할 수 있다는 것입니다. 처음으로 백업을 생성하려고 합니다. 그렇다면 왜 robocopy를 사용해야 하는지 모르겠습니다. 나는 xcopy 명령이 내 목적에 적합할 것이라고 믿습니다.

@JW0914: xcopy와 robocopy가 모두 비효율적이며 데이터 무결성이 보장되지 않는다고 말씀하셨습니다. 현재 내 컴퓨터에는 데이터가 많이 저장되어 있지 않으며 xcopy에도 무리한 시간이 걸리지 않았습니다. 그러니 효율성에 대해서는 걱정할 필요가 없을 것 같아요. "/v" 매개변수를 사용했기 때문에 xcopy는 복사본이 원본과 동일하다는 것을 확인했습니다. 내 "echo %ERRORLEVEL%" 명령은 오류 메시지를 출력하지 않으므로 내 데이터를 복사하는 데 오류가 없다고 생각합니다. 따라서 저는 데이터 무결성에 어떤 문제도 있어서는 안 된다고 생각합니다.

Windows를 백업하기 위해 Linux를 사용해서는 안된다고 말씀하셨습니다. Windows를 백업하기 위해 Linux를 사용하려는 것이 아닙니다. 저는 Linux를 사용해 본 경험이 있으며 해당 운영 체제를 선호합니다. 컴퓨터를 받자마자 Linux를 설치했어야 했는데 그러지 못했습니다. 이것이 바로 Windows 시스템에 데이터가 있는 이유입니다. 이제 Linux를 설치하고 싶지만 먼저 데이터가 안전하게 백업되었는지 확인해야 합니다.

SenorCMasMas와 JW0914 모두에게 감사드립니다. 귀하의 의견에 감사드립니다. 귀하가 제공해야 할 추가 의견과 다른 사람들의 의견에 감사드립니다.

관련 정보