큰 폴더 이름 바꾸기 : 위험합니까? 폴더 이름을 180GB로 바꾸는 것이 위험

mv명령을 사용하여 폴더 이름을 180GB로 바꾸는 것이 위험 합니까?

/data180GB가 포함 된 폴더 가 있습니다.

명령 /data/BD_FILES사용하여 폴더의 이름을 바꾸려고합니다 mv.

그렇게하는 것이 안전한가요?



답변

동일한 파일 시스템 내에 있으면 폴더의 이름을 변경해도 안전합니다.


마운트 포인트 인 경우 ( /data내가 마운트 포인트 일 수있는 것처럼 보이면 이것을 사용하여 확인하십시오 mount) 데이터를 루트 파티션으로 이동하기 mv때문에 단순한 것 이외의 작업을 수행해야 mv /data /BD_FILES합니다 ( 당신이 일어나고 싶어).

파일 시스템을 마운트 해제하고 지금 비어있는 디렉토리 /etc/fstab의 이름을 바꾸고이 파일 시스템의 새 위치로 업데이트 한 다음 이름이 바뀐 위치에서 파일 시스템을 다시 마운트해야합니다.

다시 말해,

  1. umount /data
  2. mv /data /BD_FILES( /BD_FILES이 경우에는 존재하지 않는다고 가정하면 먼저 이동하십시오)
  3. 업데이트 /etc/fstab, 마운트 지점을에서 /data로 변경/BD_FILES
  4. mount /BD_FILES

여기에는 파일 복사가 필요하지 않으며 파일 시스템의 마운트 지점 역할을하는 디렉토리 이름 만 변경됩니다.


디렉토리 이름을 바꾸는 데 디렉토리를 새 파일 시스템으로 옮기는 경우 (예 /data를 들어 한 디스크에있는 동안 /BD_FILES다른 디스크에있는 경우 더 큰 파티션으로 이동하는 경우 일반적으로 수행) 복사가 정상인지 확인할 수있을 때까지 원본을 그대로두고 데이터를 복사하는 것이 좋습니다. 당신은 이것을 할 수 있습니다

rsync -a /data/ /BD_FILES/

예를 들어, rsync이 작업과 수행하지 않은 작업에 대한 설명서를 참조하십시오 (예 : 하드 링크를 유지하지 않음).


폴더 이름이 바뀌면 기존 절차 (폴더를 사용하는 프로그램 및 사용자, 백업 등)가 이름 변경을 인식하고 있는지 확인해야합니다.


답변

디렉토리의 모든 파일 이름을 바꾸는 것이 아니라 /에서 하나의 파일 이름을 바꾸는 입니다. 그것은 왜냐하면:

  1. 디렉토리는 파일이며
  2. 파일 시스템은 실제 텍스트가 아니라 inode에 관심이 있습니다.

따라서 파일의 수나 데이터의 양에 관계없이 디렉토리 이름을 바꾸는 것은 쉽지 않습니다.


답변

동일한 파일 시스템의 소스 및 대상 이름 만 바꾸면 디렉토리 항목의 이름 만 변경됩니다. 성공하고 디렉토리에 새 이름이 있거나 실패하면 아무 것도 변경되지 않습니다 * .

소스와 대상이 다른 파일 시스템에 있으면 데이터를로 복사해야합니다 mv. 최대 파일 크기, 파일 이름 제한 등과 같은 파일 시스템 기능의 차이로 인해 문제가 발생할 수 있습니다. 문제를 피하려면 먼저 파일을 복사하고 ( cp,, rsync…) 복사가 성공적으로 완료되면 원래 위치에서 파일을 제거하십시오.

* 그러나 man 2 renameBUGS 섹션에 언급 된 것과 같은 일부 경우가 있습니다.


답변

다른 사람들이 말했듯이 폴더 이름을 바꾸면 내용에 내재 된 위험이 없습니다. 그러나 고려해야 할 다른 종류의 위험이 있습니다.

원래 위치를 참조하는 기존 절차, 스크립트, 사용자 정의 바로 가기 및 구성은이 변경으로 인해 손상 될 수 있으며 경로가 데이터베이스에 저장된 경우 업데이트하는 것이 큰 작업이 될 수 있습니다.

할 수있는 한 가지는 새 디렉토리 이름에 대한 심볼릭 링크를 만드는 것이지만 이전 이름은 잠시 그대로 두십시오. 그러면이 변경의 영향을 평가할 시간이 제공됩니다. 이전 이름을 일시적으로 제거하고 문제가 있는지 확인한 다음 문제가있는 경우 이전 이름을 다시 작성하면 업데이트해야 할 사항을 파악하는 동안 사람들이 계속 작업 할 수 있습니다.

이와 같은 명령으로 수행해야합니다.
ln -s /data /BD_FILES


답변

이름 바꾸기는 원 자성입니다. 합리적 인 유일한 위험은 mv어떤 이유로 든 모든 것을 복사하기로 결정하고 반으로 충돌하는 것입니다. 당신이 GNU이있는 경우 mv, mv -T이러한 위험을 제거합니다.

mv -Tmv폴더가 아닌 폴더로 이동하고 있음을 알려줍니다 . mkdir()폴더를 이동하면 폴더가 실패하고 어떤 이유로 복사하기로 결정한 경우 거부 하게됩니다.

mv -T몇 년 전 석사 논문 작업을하는 동안 버그를 털어내는 데 관여했습니다 . 너무 많은 경우에 잘못된 일을 했었습니다.

반면 루트 파티션에는 180GB의 사용자 데이터가 있습니다. 아마도 이것을 루트 파티션에서 옮기고 싶을 것입니다.