2017-05-10 1 views
0

한 폴더에서 다른 폴더로 이동할 파일 수가 많습니다. 어떤 이유로 든 그 파일들 중 하나의 이동이 실패하면, 나는 그 중 아무 것도 움직이지 않기를 바란다. 기본적으로 모든 파일을 이동하거나 모두 이동하지 않아야합니다. 필자는이 논리를 근사치로 작성할 수는 있지만,하기 전에이 작업을 수행 할 원시 Python 또는 Unix 방법이 있습니까? 상황이 자주 일어나서 해결책이 이미 존재하고 나는 그것에 대해 들어 본 적이 없다고 생각합니다.파이썬에서 파일을 트랜잭션으로 이동 하시겠습니까?

+0

'mv' 이미 전원 차단에 대한 보장은 없지만 일부 파일이 남아있을 수 있습니다. – Natecat

+0

파일을 이동할 수없는 이유를 열거 할 수 있습니까? 파일을 열거 할 수 있으면 파일을 이동하기 전에 그 이유를 확인할 수 있으며 모든 파일이 이동되거나 전혀 이동하지 않을 것입니다. –

+0

나는 그들을 열거 할 수 없다. 나는 예기치 않은 이유로 파일을 옮길 수없는 경우에도 안전하게 보관할 수있는 무언가를 찾고 있습니다. – Eli

답변

0

파이썬이나 유닉스는 다중 파일에 대한 작업에 대한 트랜잭션 개념을 가지고 있지 않습니다.

디스크 파티션에서 이동하는 경우 mv 명령은 파일이 실제로 이동하지 않도록 동일한 inode를 사용하여 디렉토리 항목을 업데이트하기 만합니다 (이동 중에 실패 할 위험 없음).

는 디스크에 운동을 위해, 당신은 단지에 대해 설명 된대로 MV을, 그리고 마지막으로 소스를 취소 대상 드라이브의 임시 디렉토리가 모든 파일을 복사하고, 그것을 성공 할 수있다. 이것은 약간의 방호책을 제공 할 것이다.

관련 문제