MV:名前変更到着/: 無効な引数

MV:名前変更到着/: 無効な引数

OldHDDTrueNAS(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のファイルシステムは大文字と小文字を区別しないため、同じファイルですOldHDDoldhddただし、オペレーティングシステムは大文字と小文字を区別するため、これらの他の名前を考慮に入れます。このmvコマンドは、ファイルシステムの宛先がoldhdd既存のディレクトリであるかどうかを尋ね、そのため、答えは「はい」ですOldHDD。したがって、mvソースをこの既存のディレクトリに移動しようとします。ただし、ソースは同じディレクトリであるため、ディレクトリを独自のサブディレクトリにする試みであり、ファイルシステムはそれを拒否します。

大文字と小文字を区別しないファイルシステムで大文字と小文字を変更するだけでファイル名を変更するには、大文字と小文字を区別しない中間名を使用して2回名前を変更します。

mv OldHDD oldhdd.temp_name
mv oldhdd.temp_name oldhdd

1ただし、大文字と小文字は保存されます。つまり、保存する名前の大文字と小文字を覚えています。同じファイル名を綴る方法OldHDDoldhdd異なりますが、ファイルシステムはどのスペルが必要なスペルかを覚えています。

関連情報