OldHDD
TrueNAS(FreeBSD 13.1) 서버에 이름을 바꾸려는 디렉터리가 있는데 다음 오류가 발생합니다.
% mv OldHDD oldhdd
mv: rename OldHDD to oldhdd/OldHDD: Invalid argument
이 명령을 다양하게 변형해 보았지만 아무 것도 작동하지 않습니다.
% mv ./OldHDD oldhdd
mv: rename ./OldHDD to oldhdd/OldHDD: Invalid argument
% mv -- OldHDD oldhdd
mv: rename OldHDD to oldhdd/OldHDD: Invalid argument
% mv /full/path/to//OldHDD /full/path/to/oldhdd
mv: rename /full/path/to/OldHDD to /full/path/to/oldhdd/OldHDD: Invalid argument
또한 을 사용해 보았지만 mmv
오류가 보고되지 않더라도 디렉터리 이름은 변경되지 않습니다.
% ls
total 1
drwxr-xr-x 3 user group 3B Apr 10 21:50 OldHDD
% mmv -rv OldHDD oldhdd
OldHDD -> oldhdd : done
% ls
total 1
drwxr-xr-x 3 user group 3B Apr 10 21:50 OldHDD
디렉토리 내용에 문제가 있는 것 같지만 포함된 하위 디렉토리의 이름을 바꿀 수는 있습니다.
메타데이터가 문제의 원인인지 확인하기 위해 디렉터리를 복사해 보았지만 복사한 디렉터리에도 여전히 같은 문제가 있습니다.
디렉토리 이름을 성공적으로 바꾼 유일한 경우는 다음과 같습니다. (1) (잘못) OldHDD
하위 디렉토리의 일부 복사본만 생성하고 (2) OldHDD
. 보관소.
누군가 이 디렉토리의 이름을 바꾸는 방법과 여기서 무슨 일이 일어나고 있는지 설명해 줄 수 있습니까?
답변1
NAS의 파일 시스템은 대소문자를 구분하지 않으므로 동일한 파일입니다 OldHDD
. oldhdd
그러나 운영 체제는 대소문자를 구분하므로 이러한 다른 이름을 고려합니다. 이 mv
명령은 파일 시스템 대상이 oldhdd
기존 디렉터리인지 묻고, 그렇기 때문에 대답은 '예'입니다 OldHDD
. 따라서 mv
소스를 이 기존 디렉터리로 이동하려고 합니다. 그러나 소스는 동일한 디렉토리이므로 이는 디렉토리를 자체 하위 디렉토리로 만들려는 시도이며 파일 시스템은 이를 거부합니다.
대소문자를 구분하지 않는 파일 시스템에서 대소문자만 변경하는 방식으로 파일 이름을 바꾸려면 대소문자를 구분하지 않는 중간 이름을 사용하여 두 번 이름을 바꾸십시오.
mv OldHDD oldhdd.temp_name
mv oldhdd.temp_name oldhdd
1 그러나 대소문자는 보존됩니다. 즉, 저장하는 이름의 대소문자를 기억합니다. 동일한 파일 이름을 철자하는 방법 OldHDD
은 oldhdd
다르지만 파일 시스템은 어떤 철자가 원하는 철자인지 기억합니다.