Что делает команда CD?

Не понимание меня имело Caps Lock на, я ввел CD в командную строку на моем Mac. Удивительно, это не сделало ошибки.

which CD показывает мне /usr/bin/CD. И если я исследую тот файл, он похож на это:

#!/bin/sh
# $FreeBSD: src/usr.bin/alias/generic.sh,v 1.2 2005/10/24 22:32:19 cperciva Exp $
# This file is in the public domain.
builtin `echo ${0##*/} | tr \[:upper:] \[:lower:]` ${1+"$@"}

Я предполагаю, что это - что-то, чтобы сделать с переводом верхнего к нижнему регистру, но ${0##*/} абсолютно непрозрачно мне. man CD не говорит мне "ручной записи". Кто-то может объяснить эту команду?

Править: Хорошо, я просто заметил, что файловая система OSX нечувствительна к регистру, таким образом, этот файл на самом деле /usr/bin/cd. Но если я ввожу cd обычно, я, конечно, получаю встроенное, таким образом, /usr/bin/cd только назван, когда я понимаю свой случай превратно. Я все еще хотел бы знать то, что это делает.

10
задан 13.11.2009, 05:41

2 ответа

Кажется, что это не делает многого вообще:

Ссылка списка рассылки Apple

"Я иду на некоторые старые памяти здесь, таким образом, я не могу дать очень подробное объяснение, но причина/usr/bin/cd существует происходит из-за требования POSIX, которое касается псевдонимов и способности не использовать псевдоним через выход. Но/usr/bin/cd является бесполезным сценарием с тех пор при выполнении CD в рамках сценария оболочки, изменение каталога только относится к подоболочке, под которой работает сценарий. CD не может быть сценарием оболочки.

Кроме того, сценарий является универсальным сценарием, в котором он используется для многих команд и не просто CD.

Я заметил это /usr/bin/cd имеет количество жесткой ссылки 15 в моих 10,4 системах [...]"

Далее вниз в том потоке:

"Мой друг сказал мне, что "$ {0##*/}" означает, "принимают управление, но удаляют его путь" (т.е. преобразуйте "/usr/bin/cd" в "CD")".

Таким образом, кажется, что сценарий удаляет путь, преобразовывает результат в нижний регистр и затем добавляет исходные аргументы.

12
ответ дан 07.12.2019, 12:52

Это пытается сделать правильную вещь и перевести Вашу команду "CD" в нижний регистр. К сожалению, это довольно бессмысленно, когда это работает в подоболочке. Остаток имеет отношение к пониманию удара.

1
ответ дан 07.12.2019, 12:52

Теги

Похожие вопросы