web-dev-qa-db-ja.com

LinuxマシンとWindowsマシンの両方から接続されたNAS)でのケース(非)感度の問題

シナリオ

私はNAS(DSM4.3に基づくSynologyDS1813 +)を持っています。これはLinuxのバージョンを実行するため、ファイルシステムは(おそらく)大文字と小文字を区別します。NAS 2台のコンピューターで。1台はWindows7(大文字と小文字を区別しないファイルシステム)を実行し、ネットワーク共有を介してNAS)に接続します。もう1台はLinux Mint(大文字と小文字を区別するファイルシステム)を実行し、 NASをCIFSでマウントします。

デジタルカメラ(Canon 7D)をWindowsコンピューターに接続し、カメラからの画像をネットワーク共有を介してNAS)にインポートしました。NAS大文字の拡張子(IMG_8835.JPG)があります。

後で、Linuxマシンで、次のコマンドと出力を使用して拡張子が小文字になるように、これらのイメージの名前を一括で変更しようとしました。

$ find . -name '*.*' -exec sh -c 'a=$(echo {} | sed -r "s/([^.]*)\$/\L\1/"); [ "$a" != "{}" ] && mv "{}" "$a" ' \;
mv: ‘./IMG_8835.JPG’ and ‘./IMG_8835.jpg’ are the same file

そして:

$ rename s/.JPG/.jpg/ *.JPG
IMG_8835.JPG not renamed: IMG_8835.jpg already exists

これは、ファイルシステムで大文字と小文字が区別されないことを示しています。正しい?

さらに、私は試しました:

$ rename -f s/.JPG/.jpg/ *.JPG

このコマンドの出力は空白だったので、うまくいったのではないかと思いました。しかし、ファイルを確認したところ、ファイルの拡張子はまだ大文字でした。ファイルは複製されません。タイプ*.jpgのファイルはありません。それらはすべてまだ*.JPGです。


質問

  1. ローカルファイルシステムとリモートファイルシステムの両方の大文字と小文字の区別を報告するコマンドライン(bashコマンド)はありますか?
  2. ファイルシステムでは大文字と小文字が区別されないようです。これは私を困惑させます。どうしてそうなの? NASのリモートファイルシステムとLinuxを実行しているボックスのローカルファイルシステムはどちらも、(おそらく)大文字と小文字を区別するファイルシステムです。
  3. NASファイルシステムは(おそらく)大文字と小文字を区別しますが、フォルダとファイルはWindowsからNASに作成され、= NASはネットワーク共有を介して接続されていたため、Windowsで作成されたファイルとフォルダーでは大文字と小文字が区別されませんか?その場合、NAS?

注:この質問は、これと重複するものではありません 質問 この質問は、ファイルの名前を一括で変更する方法ではなく、ファイルシステムの大文字と小文字の区別について質問しているためです。

2
axiopisty

友人が私に this を教えてくれました。リンク先の記事は8ページありますが、説明が冗長です。答えの短いバージョンは次のとおりです。

... And that brings me to what I really want to discuss, which is how 
CIFS Server (Samba) deals with this.

As you would expect from an application that was grown to bridge 
the gap between the Unix and Windows worlds, it is very flexible. 
This is both good and bad - with flexibility comes responsibility, 
and sometimes not a little confusion. There are four configuration 
options that Samba provides to allow one to define its behavior 
when dealing with matters of 'case': 

preserve case = (yes/no) 
short preserve case = (yes/no) 
default case = (upper/lower) 
case sensitive = (yes/no)

解決策は、 Sambaを構成 で、特定のニーズに対応する方法でケースの機密性(またはケースの保存の問題)を処理します。

1
axiopisty