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
ソースをこの既存のディレクトリに移動しようとします。ただし、ソースは同じディレクトリであるため、ディレクトリを独自のサブディレクトリにする試みであり、ファイルシステムはそれを拒否します。
大文字と小文字を区別しないファイルシステムで大文字と小文字を変更するだけでファイル名を変更するには、大文字と小文字を区別しない中間名を使用して2回名前を変更します。
mv OldHDD oldhdd.temp_name
mv oldhdd.temp_name oldhdd
1ただし、大文字と小文字は保存されます。つまり、保存する名前の大文字と小文字を覚えています。同じファイル名を綴る方法OldHDD
はoldhdd
異なりますが、ファイルシステムはどのスペルが必要なスペルかを覚えています。