Я новичок в Ubuntu Я попытался открыть файл с именем, в котором есть место в нем Я использовал команду cd он показывает bash: cd: слишком много аргументов
всякий раз, когда в имени файла есть пробел. Он показывает эту ошибку Что мне делать? Спасибо заранее
или уберите пробел:
(При этом cd не открывает файл, но изменяет рабочий каталог.)
Я только что обновил Ubuntu 16.04 до 17.04 и нашел небольшую проблему с командой cd .
Предположим, что у меня есть две папки: album-01 & amp; album-02
В Ubuntu 16.04, если я делаю cd album* , он перейдет в первую найденную папку album-01
Но в новом Ubuntu 17.04, если я сделаю cd album* , это приведет меня -bash: cd: too many arguments
Как сделать cd в Ubuntu 17.04 как cd в Ubuntu 16.04?
4 ответа
Я не мог проверить это на реальной системе 17.04 (только проверено, что оно работает с 16.04), но вы можете переопределить встроенную команду cd Bash с вашей собственной пользовательской функцией, которая отбрасывает любые дополнительные аргументы, кроме первого:
Обновление: Как указано в комментарий @ muru , эта версия ниже может работать лучше и поддерживать вызов cd без аргументов:
После того, как вы ввели эту строку выше в своем терминале, убедитесь, что теперь cd ведет себя так, как вы хотите. Если это так, вы можете сделать это определение функции постоянным, добавив эту строку в конец вашего файла
/.bashrc . В противном случае он исчезнет, как только вы закончите текущий сеанс оболочки.
Обратите внимание: если по какой-либо причине вам временно необходимо использовать настоящую команду cd Bash вместо этой настраиваемой функции, вы можете просто вызвать ее с помощью command cd вместо простого cd .
Краткий ответ / Временное решение
Чтобы ответить на ваш вопрос в этом конкретном случае, это работает
Но это, вероятно, не функциональность, которую вы действительно хотите.
Что изменилось?
Похоже, что config-top.h в Bash- 4.4 была обновлена, чтобы добавить следующий параметр
И builtins/cd.def относится к вашей ошибке здесь
Что я могу сделать в долгосрочной перспективе?
Вы можете скомпилировать свой собственный bash без нового CD_COMPLAINS , но это утомительно. Вы можете переопределить функциональность cd , как предлагается здесь, или вы могли бы использовать функцию типа
Доказательство
Bash 4.4 Beta, где он все еще работает
Bash 4.4 Стабильный релиз, где он не работает
Я никогда не сталкивался с этой проблемой, поскольку я всегда использую Завершение вкладки.
Итак, в вашем случае вместо того, чтобы иметь неточное предположение относительно того, какой каталог я хочу, я бы набрал cd al Tab , который, если есть только одно совпадение, завершает его, и если есть 2 или больше завершается до конца совпадения, а вкладка Tab перечисляет варианты.
Вот пример из моей системы:
, а затем вкладка вкладка создает
Это выглядит как ошибка в Bash: per man builtins старое поведение является правильным.
Вы можете сообщить об ошибке в списке рассылки bug-bash ; подробнее здесь .
Собственно, ошибка была сообщена (давно). Если вы хотите установить фиксированный Bash сейчас, теперь now , вот как это сделать правильно (тестирование на 17.10, также должно работать и на других).
Сначала создайте каталог для работы, например:
Получить исходный пакет и зависимости сборки:
Измените config-top.h , чтобы изменить это (должна быть строка 32)
Измените debian/changelog и добавьте запись вверху (вы также можете использовать команду dch -i ):
Наиболее важными моментом является добавление +foo к текущему номер версии ( foo может быть любой строкой строчных букв и быть осторожным, если вы используете dch -i , он будет увеличивать последнее число, поэтому вам нужно вернуть его на текущий) и использовать правильное имя выпуска ( artful здесь). Наконец, запустите dpkg-source —commit .
Затем вы можете запустить команду debuild , и если все будет хорошо (ошибки в debsign могут быть проигнорированы), у вас должно быть некоторое количество .deb s в родительском каталоге, которое вы можете установить как обычно (есть нет необходимости устанавливать их все, только те, которые у вас есть сейчас, используйте dpkg -l | grep bash , чтобы узнать).
Обратите внимание, что номер версии нового пакета установлен так, что вы автоматически получите какое-либо будущее обновление bash ; если обновление не устраняет проблему, вам необходимо повторить описанный выше процесс.
(Этот ответ был впервые отправлен на этот дублированный вопрос .)
I’m new to Ubuntu. I tried to open a file with name which has space in it. I used cd command. it shows bash : cd : too many arguments
Whenever a file name has a space in it. It is showing this error. What should I do?
closed as off-topic by Cody Gray ♦ Mar 31 at 15:43
This question appears to be off-topic. The users who voted to close gave this specific reason:
- «Questions about general computing hardware and software are off-topic for Stack Overflow unless they directly involve tools used primarily for programming. You may be able to get help on Super User.» – Cody Gray
If this question can be reworded to fit the rules in the help center, please edit the question.