180GB 폴더의 이름을 바꾸는 명령을 사용할 때 위험이 있습니까 mv
?
180GB가 포함된 폴더 가 있습니다 /data
.
/data
명령을 사용하여 이 폴더의 이름을 바꾸고 싶습니다 ./BD_FILES
mv
이거 안전한가요?
답변1
폴더가 동일한 파일 시스템에 있는 경우 폴더 이름을 변경하는 것이 안전합니다.
만약 그것이라면마운트 포인트( /data
내 마운트 지점 중 하나 mount
사용하여mv
인mv /data /BD_FILES
파일 시스템을 마운트 해제하고, 이제 비어 있는 디렉토리의 이름을 바꾸고, /etc/fstab
파일 시스템의 새 위치로 업데이트한 다음, 이름이 바뀐 위치에 파일 시스템을 다시 마운트해야 합니다.
다시 말해서,
umount /data
mv /data /BD_FILES
(/BD_FILES
아직 거기에 없다고 가정하고, 이 경우 먼저 방해가 되지 않는 곳으로 이동하십시오)- update
/etc/fstab
, 마운트 지점을/data
다음에서 변경합니다./BD_FILES
mount /BD_FILES
여기에는 파일 복사가 포함되지 않으며 파일 시스템의 마운트 지점 역할을 하는 디렉터리의 이름만 변경됩니다.
디렉토리 이름 바꾸기에 해당 디렉토리가 다른 /data
디스크에 있지 않고 한 디스크 /BD_FILES
에 있는 경우 새 파일 시스템으로 이동하는 경우가 이에 해당할 수 있습니다. 예를 들어 내용을 더 큰 파티션으로 이동하는 것이 일반적인 관행입니다. 복사가 제대로 되었는지 확인할 때까지 원본 데이터를 그대로 유지하면서 데이터를 복사합니다. 당신은 이것을 할 수 있습니다
rsync -a /data/ /BD_FILES/
예를 들어, rsync
수행하는 작업과 수행하지 않는 작업에 대한 설명서를 참조하세요(예: 하드 링크를 보존하지 않음).
폴더 이름을 바꾼 후에는 기존 프로세스(폴더, 백업 등을 사용하는 프로그램 및 사용자)가 이름 변경을 인식하는지 확인해야 합니다.
답변2
디렉토리의 모든 파일 이름을 바꾸는 대신,하나파일은 /에 있습니다. 그 이유는 다음과 같습니다.
- 디렉토리는 파일이고
- 파일 시스템은 실제 텍스트가 아닌 inode에 실제로 관심을 갖습니다.
따라서 디렉터리에 얼마나 많은 파일이나 데이터가 있더라도 디렉터리 이름을 바꾸는 것은 쉽지 않습니다.
답변3
이름을 바꾸면(소스 및 대상동일한파일 시스템) 이는 단순히 디렉토리 항목의 이름을 바꾸는 것입니다. 성공하여 디렉터리에 새 이름이 지정되거나 실패하며 이 경우 아무것도 변경되지 않습니다 * .
소스와 대상이 서로 다른 파일 시스템에 있는 경우 데이터를 복사해야 합니다 mv
. 파일 시스템 기능의 차이(예: 최대 파일 크기, 파일 이름 제한 등)로 인해 문제가 발생할 수 있습니다. 문제가 발생하지 않도록 하려면 먼저 파일( cp
, rsync
, ...)을 복사한 후 복사가 성공적으로 완료된 후 원래 위치에 있는 파일을 삭제하세요.
* 단, 다음과 같은 특별한 경우도 있습니다.실수부분적으로남자 2 이름 바꾸기
답변4
이름 바꾸기는 원자적입니다. 유일하게 합리적인 위험은 mv
어떤 이유로 모든 것을 복사하기로 결정했는데 도중에 충돌이 발생한다는 것입니다. GNU가 있으면 이러한 위험이 제거됩니다 mv
.mv -T
mv -T
폴더가 아닌 곳으로 이동 한다고 말하면 mv
이동을 거부하게 되어 mkdir()
폴더가 이동되고 어떤 이유로 복사하기로 결정하면 실패하게 됩니다.
mv -T
몇 년 전 저는 석사 논문을 작성하는 동안 오류를 제거하는 일에 참여했습니다. 너무 많은 극단적인 경우에 잘못된 일을 하곤 했습니다.
반면 루트 파티션에는 180GB의 사용자 데이터가 있습니다. 루트 파티션 밖으로 이동하고 싶을 수도 있습니다.