mv: target 'hadoop/' is not a directory

Это то же самое в оболочке, что и в других грамматиках, которые вы упомянули. Строка с одинарными кавычками будет рассматриваться как "строковый литерал" (так сказать).

Разница между git add '*.txt'и git add *.txtзаключается в том, кто выполняет сопоставление шаблона с именами файлов.

В случае git add '*.txt', gitвыполняет сопоставление с образцом. Поскольку оболочка не будет расширять строковый литерал '*.txt', git addбудет вызываться с одним аргументом, *.txt. gitзатем выполняет сопоставление с именами файлов, доступными во всем репозитории(потому что... git).

В случае git add *.txtоболочка выполняет сопоставление имен файлов и передает список совпадающих имен файлов из текущего каталогав git add. Обратите внимание, что если нет имен, соответствующих заданному шаблону, оболочка (обычно 1) передаст шаблон в git addбез расширения.Если это произойдет, результат будет таким же, как если бы паттерн был процитирован.

1Обычно, но см., например, параметр оболочки failglobв bash. См. также комментарии к этому ответу.


Когда git addполучает имя файла pattern, он добавит не только файлы, совпадающие в текущем каталоге, но и добавит все файлы, совпадающие во всем репозиторий(т.е. включая любые подкаталоги). Вот почему текст в правом нижнем углу говорит

Подстановочные знаки:

Нам нужны кавычки, чтобы Git получил подстановочный знак до того, как наша оболочка сможет вмешаться в него. Без кавычек наша оболочка будет выполнять поиск по подстановочным знакам только в текущем каталоге. Git получит список файлов, найденных оболочкой вместо подстановочного знака, и не сможет добавить файлы в каталог octofamily.

0
06.04.2016, 15:25
0 ответов

Теги

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