Linuxは大文字と小文字を区別し、大文字と小文字を区別せず常に不便ですか?


8

私はUbuntu 10を使用していますが、それが不便な場合は大文字と小文字が区別される(ターミナルのタブでファイルパスをオートコンプリートする場合など)だけでなく、MVおよびCPコマンドを使用する場合も大文字と小文字を区別しないこともすぐにわかります(これも不便です)別のケースでファイル名を複製しようとした場合)。

要するに、このコマンドが機能する必要がありますが、機能しません。

cp ./filename.txt ./FileName.txt

私はただ終わるfilename.txt

ここに画像の説明を入力してください

大文字と小文字が異なる同じ名前の同じファイルを同じディレクトリに取得するにはどうすればよいですか?

編集:以下のMaericsのコメントは、大文字と小文字を区別しないNTFSを実行しているWindows共有ドライブで実際に開発していることを思い出すのに役立ちました。これが、CPとMVがエラーを生成しなくても、ファイルがコピーされない(またはISがコピーされる可能性が高いが、既存のファイルがWindowsに置き換えられる)理由です。


1
それは奇妙なことです。私はこのコマンドを驚くことなくテストしました...同じディレクトリ内のさまざまなケースで問題はありません。
DenysSéguret12年

5
この動作は、これらのファイルが存在するファイルシステムのタイプに依存する場合があることに注意してください。たとえば、FAT32はこれらのファイル名を区別しない場合があります。
maerics 2012年

ワオ。これが答えです。ファイルは、NTFSを実行しているマウントされたドライブに保存されます。Windowsを使用してファイルを保存しているクロスプラットフォームを開発しているので、完全に忘れてしまいました。
anon58192932

1
@アドボケート:NTFSは大文字と小文字を区別するので、好きな方法でマウントできるはずです。しかし、問題はこれがあなたが望むものであるかどうかです:)
0xC0000022L

テストでは、Windows 7では大文字と小文字が区別されないようです。
anon58192932

回答:


4

NTFS 1とVFATは大文字と小文字を区別しません。大文字と小文字を区別するだけです。つまり、という名前のファイルを作成するとFileName.txt、ファイルシステムは大文字と小文字が混在する名前を保持しますがFILENAME.TXTfilename.txtやのように同じ文字を大文字と小文字を組み合わせて使用​​してファイルにアクセスできますfileNAME.txt。これは、同じディレクトリに大文字と小文字のバリエーションのみが含まれる、同じスペルの2つのファイルを持つことはできないことを説明しています。

SMBエクスポートファイルシステムは、Windowsクライアントを混乱させないようにこの動作を実装する必要があります。

ZFSは、casesensitivity=mixedプロパティでそのように動作するように構成できます。

1 技術的には、NTFSは大文字と小文字を区別しますが、このタイプのファイルシステムをマウントするOSは、ほとんどの場合、この基本的な機能を隠し、大文字と小文字のみを保持するように構成されます。ただし、Windowsはこのレジスタキーを変更して大文字と小文字の区別を有効にすることができHKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\dword:ObCaseInsensitive、Linuxはignore_casewindows_namesマウントオプションに応じてさまざまな動作でこれらのファイルシステムをマウントできます。


2
NTFS 大文字と小文字を区別します。ただし、Win32では大文字と小文字が区別されないため、実用上の理由から、ほとんどの人はNTFSもそうではないと想定しています。
コーディグレイ

@CodyGrayはい、そうです、この機能を指摘してくれてありがとう。基礎となるNTFSファイルシステムでは、大文字と小文字の違いだけが異なるファイル名を使用できます。
jlliagre 2017年

11

次の行をに追加することで、bashで大文字と小文字を区別しないファイル名補完を有効にできます$HOME/.inputrc

set completion-ignore-case On

ファイル名について:これはファイルシステムに依存します。Linuxファイルシステムでは、問題はありません。他のファイルシステムでは、動作はマウントコマンドのオプションで制御できます。mount(8)マウントできるオプションの詳細については、マニュアルページを参照してください。


あなたは正しいです。基礎となるファイルシステムはLinuxファイルシステムではなかったため、CPとMVが機能している間、Windowsは既存のファイルを保持することを選択し(大文字と小文字の区別がないため上書きする場合)、コマンドがまったく機能しなかったようにUnixターミナルに表示されます。 。また、完了無視ケースのおかげで、それは非常に役立ちます!
anon58192932

「オン」の大文字と小文字は区別されますか?;)
Arj 2016年

悲しいことに、これはスクリプトでは役に立ちません。
Sridhar Sarnobat

2

これはファイルシステムのプロパティですか、それとも他のプロパティですか?

pa-ubuntu-11388$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 10.04.3 LTS
Release:        10.04
Codename:       lucid
pa-ubuntu-11388$ ls -l
pa-ubuntu-11388$ touch filename.txt
pa-ubuntu-11388$ ls -l
-rw-r--r-- 1 dshawley dev 0 May 31 15:17 filename.txt
pa-ubuntu-11388$ cp ./filename.txt ./FileName.txt
pa-ubuntu-11388$ ls -l
-rw-r--r-- 1 dshawley dev 0 May 31 15:17 FileName.txt
-rw-r--r-- 1 dshawley dev 0 May 31 15:17 filename.txt

それは私にとってはうまくいきます。


上記のMaericsは問題の解決に役立ちました。UbuntuでWindows-> linuxポートを開発していますが、ファイルはWindowsコンピューターに保存されており、ドライブをマウントしたのを忘れていました。基礎となるNTFSは、両方のファイルが同時に存在することを妨げていました。
anon58192932

1

Ubuntuは部分的に大文字と小文字を区別しません。常に大文字と小文字が区別されます。filename.txtおよびFilename.txtは2つの異なるファイルであり、同じディレクトリに配置できます。したがって、このコマンド:

cp ./filename.txt ./FileName.txt

同じディレクトリで問題なく動作します。


しかし、そうではありません。私は過去1時間、それを理解しようと努めてきました。
anon58192932

2
filename.txtたぶん、あなたは自分自身を現在のディレクトリに持っていませんか?
PP 2012年

間違いなくそこにあります。
anon58192932

上記のMaericsは問題の解決に役立ちました。UbuntuでWindows-> linuxポートを開発していますが、ファイルはWindowsコンピューターに保存されており、ドライブをマウントしたのを忘れていました。基礎となるNTFSは、両方のファイルが同時に存在することを妨げていました。
anon58192932

2
Maericsのコメントを見ました。thx
PP
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.