2016-05-29 4 views
0

Если UNIX чувствителен к регистру, и у меня есть каталог с именем рубин в моем домашнем каталоге, а не каталог с именем Руби, то почемучувствительность к регистру в UNIX и Bash

cd ruby 

и

cd Ruby 

производят тот же результат, то есть я записываю CD в каталог ruby?

+2

Некоторые файловые системы (в частности, HFS +) являются случай сохраняющих; регистр, используемый для создания файла или каталога, запоминается, но для доступа к нему разрешен любой случай. То есть, 'mkdir ruby' создает каталог со всеми строчными буквами, но поиск позволяет использовать любую комбинацию случая:' ruby', 'RUBY',' RuBy' и т. Д. Все соответствуют одному и тому же каталогу. – chepner

+0

Так ли это в случае с OSX 10.11.1? Я также могу набрать Mkdir или mkDIR вместо mkdir, и он не дает ошибку «команда не найдена». –

+0

Да, OS X использует HFS +. – chepner

ответ

1

Сначала убедитесь, что они относятся к одному и тому же каталогу. Проверьте вывод:

ls [Rr]uby 

Если вы уверены, что они имеют в виду тот же каталог, то это может быть cdspell встроенный в bash, что здесь работает, целью которого является устранение незначительных опечаток в именах каталогов при выполнении cd. В вашем случае он исправляет случаи письма R/r.

Вы можете проверить, является ли она включена по:

shopt cdspell 

Пример:

$ cd Ques 
bash: cd: Ques: No such file or directory 

$ shopt -s cdspell 

$ cd Ques 
ques 

ques$ shopt cdspell 
cdspell   on 
+0

если я набираю shopt cdspell, Bash говорит cdspell off –

+0

@ A.N.Other Вы уверены, что это тот же каталог? проверьте вывод 'ls [Rr] uby'? – heemayl

+0

100% уверен, ls ruby ​​и ls Ruby дают тот же результат. Тот же результат возникает, если я создаю новый указатель, например. newdir Я могу затем cd Newdir и cd newdir –