Linux: Sowohl Case Sensitive als auch Case Insensitive und immer unpraktisch?

Linux: Sowohl Case Sensitive als auch Case Insensitive und immer unpraktisch?

Ich verwende Ubuntu 10 und stelle schnell fest, dass die Groß-/Kleinschreibung beachtet wird, wenn dies unpraktisch ist (z. B. bei der automatischen Vervollständigung von Dateipfaden mit der Tabulatortaste im Terminal). Bei der Verwendung der Befehle MV und CP wird jedoch auch nicht zwischen Groß- und Kleinschreibung unterschieden (ebenfalls unpraktisch beim Versuch, einen Dateinamen mit anderer Groß-/Kleinschreibung zu duplizieren).

Eigentlich müsste dieser Befehl funktionieren, aber das tut er nicht.

cp ./filename.txt ./FileName.txt

Am Ende komme ich nur zu folgendem Ergebnis filename.txt:

Bildbeschreibung hier eingeben

Wie kann ich die gleiche Datei mit anderer Groß-/Kleinschreibung, aber gleichem Namen in das gleiche Verzeichnis bekommen?

EDIT: Maerics‘ Kommentar weiter unten hat mir dabei geholfen, mich daran zu erinnern, dass ich eigentlich auf einem freigegebenen Windows-Laufwerk mit NTFS entwickle, das nicht zwischen Groß- und Kleinschreibung unterscheidet. Aus diesem Grund wird die Datei nicht kopiert (oder wahrscheinlicher WIRD sie kopiert, aber Windows ersetzt die bereits vorhandene Datei), auch wenn CP und MV keinen Fehler erzeugen.

Antwort1

NTFS 1 und VFAT unterscheiden nicht zwischen Groß- und Kleinschreibung, sie bewahren nur die Groß- und Kleinschreibung. Das bedeutet, wenn Sie eine Datei mit dem Namen erstellen FileName.txt, behält das Dateisystem den Namen in gemischter Groß- und Kleinschreibung bei, Sie können jedoch mit jeder beliebigen Kombination gleicher Buchstaben auf die Datei zugreifen, z. B. FILENAME.TXT, filename.txtoder fileNAME.txt. Dies erklärt, dass Sie nicht zwei Dateien mit derselben Schreibweise und nur einer Variation von Groß- und Kleinschreibung im selben Verzeichnis haben können.

SMB-exportierte Dateisysteme müssen dieses Verhalten implementieren, um Windows-Clients nicht zu verwirren.

Mit der Eigenschaft kann ZFS so konfiguriert werden, dass es sich so verhält casesensitivity=mixed.

1 Technisch gesehen ist NTFS case-sensitiv, aber die Betriebssysteme, die Dateisysteme dieses Typs mounten, sind fast immer so konfiguriert, dass diese zugrunde liegende Funktion ausgeblendet wird und nur die Groß-/Kleinschreibung beibehalten wird. Windows kann jedoch die Case-Sensitivität durch Ändern dieses Registerschlüssels aktivieren HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\dword:ObCaseInsensitiveund Linux kann diese Dateisysteme mit unterschiedlichem Verhalten mounten, abhängig von den Mount ignore_case- windows_namesOptionen.

Antwort2

Sie können die Groß-/Kleinschreibung-unabhängige Dateinamenvervollständigung in Bash aktivieren, indem Sie die folgende Zeile hinzufügen $HOME/.inputrc:

set completion-ignore-case On

Bezüglich der Dateinamen: Dies hängt vom Dateisystem ab. Auf Linux-Dateisystemen sollte es kein Problem geben. Auf anderen Dateisystemen kann das Verhalten mit Optionen für den Mount-Befehl gesteuert werden. mount(8)Weitere Informationen zu den verfügbaren Mount-Optionen finden Sie auf der Manualpage.

Antwort3

Ist das eine Eigenschaft des Dateisystems oder etwas anderes?

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

Bei mir funktioniert es einwandfrei.

Antwort4

Ubuntu unterscheidet teilweise nicht zwischen Groß- und Kleinschreibung. Es unterscheidet immer zwischen Groß- und Kleinschreibung. filename.txtund Filename.txtsind zwei verschiedene Dateien und können im selben Verzeichnis abgelegt werden. Also dieser Befehl:

cp ./filename.txt ./FileName.txt

funktioniert problemlos im selben Verzeichnis.

verwandte Informationen