Почему работает ls ~/.ssh, а не cd ~/.ssh?

Если команда ls перечисляет содержимое каталога, то некоторые выходные данные для ls <directory, по-видимому, указывают на то, что каталог существует.

Например, вот что я получаю:

> ls ~/.ssh
id_rsa  id_rsa.pub  known_hosts

Но почему тогда, когда я набираю cd ~/.ssh, я получаю

> cd ~/.ssh
The system cannot find the path specified.

?

Почему я могу перечислить содержимое этого каталога, но не могу перейти к нему?

Я использую Windows 8


person CodyBugstein    schedule 03.06.2016    source источник
comment
Вы используете ls в Windows 8?   -  person Ignacio Vazquez-Abrams    schedule 03.06.2016
comment
Может быть, это может помочь вам? stackoverflow.com/questions/26748579 /   -  person kayla210    schedule 03.06.2016
comment
CodyBugstein..Какую ОС вы используете, Win или Linux??   -  person Altmish-E-Azam    schedule 03.06.2016
comment
bash и ls обычно не предоставляются корпорацией Майкрософт. Вы добавили программное обеспечение, такое как Cygwin или MSYS?   -  person lit    schedule 04.06.2016


Ответы (1)


Этот ответ основан на предположении, что вы используете командную строку для выполнения этих команд.

Причина, по которой вы можете ls каталог, но не cd в него, заключается в том, что команда ls исходит из загруженной вами библиотеки, которая заставляет ls работать в Windows.

Напротив, ваша команда cd выполняется из Windows, а не из загруженной вами библиотеки.

Короче говоря, ls знает, как разобрать тильду (~) как дома, но Windows не знает, как разобрать ~. попробуй: cd ~. это не сработает.

person ddavison    schedule 03.06.2016
comment
Ах, хорошо, я не помню, чтобы что-то скачивал для ls. Как я могу сделать то же самое для cd? - person CodyBugstein; 03.06.2016
comment
Не могли бы вы помочь мне выяснить, какая у меня ls программа? - person CodyBugstein; 03.06.2016
comment
ну, я бы порекомендовал консолидировать вашу среду. поскольку вы пытаетесь использовать команды unix, используйте Cygwin. не смешивайте и не сопоставляйте разные исполняемые файлы между Linux и Windows. т. е. не используйте командную строку, если вы собираетесь использовать команды unix :) - person ddavison; 03.06.2016
comment
where ls почти во всех командных строках показывает, где находится ваш исполняемый файл - person Kimmax; 03.06.2016
comment
Итак, как мне на самом деле перейти к .ssh? Я не уверен, где живет фактический каталог - person CodyBugstein; 03.06.2016
comment
cd %USERPROFILE%\.ssh должно помочь, если вы используете cmd и папка .ssh находится под вашим профилем пользователя. - person Kimmax; 03.06.2016