Używam Ubuntu 10 i szybko dowiaduję się, że rozróżniana jest wielkość liter, gdy jest to niewygodne (na przykład podczas autouzupełniania ścieżek plików z tabulatorem w terminalu), ale także rozróżnia małe i duże litery przy użyciu poleceń MV i CP (również niewygodne podczas próby skopiowania nazwy pliku z inną literą).
Zasadniczo potrzebuję tego polecenia do działania, ale nie działa.
cp ./filename.txt ./FileName.txt
Po prostu kończę na filename.txt
:
Jak mogę uzyskać ten sam plik z inną kopią, ale o tej samej nazwie w tym samym katalogu?
EDYCJA: Poniższy komentarz Maericsów pomógł mi zapamiętać, że tak naprawdę rozwijam się na współdzielonym dysku Windows z systemem NTFS, co nie ma znaczenia dla wielkości liter. Dlatego nawet jeśli CP i MV nie generują błędu, plik nie jest kopiowany (lub bardziej prawdopodobne jest, że jest kopiowany, ale Windows zastępuje już istniejący).
Odpowiedzi:
NTFS 1 i VFAT nie rozróżniają wielkości liter, po prostu zachowują wielkość liter. Oznacza to, że jeśli utworzyć plik o nazwie
FileName.txt
, system plików będzie zachować mieszane nazwę sprawy, ale można uzyskać dostępu do pliku z kombinacji cokolwiek przypadku tych samych liter, jakFILENAME.TXT
,filename.txt
lubfileNAME.txt
. To wyjaśnia, że w tym samym katalogu nie można mieć dwóch plików o tej samej pisowni, a jedynie odmianę wielkich / małych liter.Wyeksportowany system plików SMB musi zaimplementować to zachowanie, aby nie mylić klientów Windows.
ZFS można skonfigurować tak, aby zachowywał się w ten sposób z
casesensitivity=mixed
właściwością.1 Technicznie, w systemie plików NTFS rozróżniana jest wielkość liter, ale systemy plików montujące systemy operacyjne tego typu są prawie zawsze skonfigurowane tak, aby ukrywać tę podstawową funkcję i tylko zachowywać wielkość liter. System Windows może jednak włączyć rozróżnianie wielkości liter dzięki modyfikacji tego klucza rejestru,
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\dword:ObCaseInsensitive
a Linux może montować te systemy plików z różnymi zachowaniami w zależności od opcjiignore_case
iwindows_names
montowania.źródło
Możesz włączyć uzupełnianie nazw plików bez rozróżniania wielkości liter w bash, dodając następujący wiersz do
$HOME/.inputrc
:Odnośnie nazw plików: Zależy to od systemu plików. W systemach plików Linux nie powinno być problemu. W innych systemach plików zachowanie można kontrolować za pomocą opcji polecenia mount. Zobacz stronę podręcznika,
mount(8)
aby uzyskać więcej informacji na temat dostępnych opcji montażu.źródło
Czy jest to właściwość systemu plików czy coś innego?
Działa dla mnie dobrze.
źródło
Ubuntu nie rozróżnia wielkości liter. Zawsze uwzględniana jest wielkość liter.
filename.txt
iFilename.txt
są dwoma różnymi plikami i mogą być umieszczone w tym samym katalogu. Więc to polecenie:będzie działać bez problemu w tym samym katalogu.
źródło
filename.txt
siebie w bieżącym katalogu?