В дополнение к существующим ответам, у вас могут быть нестандартные / общие совместимости и варианты использования производительности, которые извлекают выгоду из разных разделов.
Возможно, вам захочется поделиться данными с другой операционной системой, такой как Windows и необходимо использовать файловую систему, поддерживаемую как Linux, так и поддерживающую.
У вас могут быть специальные прецеденты, которые позволяют вам иметь разные настройки (одного и того же типа файловой системы, например, раздела EXT4 для большого количества небольших файлов и раздел EXT4 для небольшого большого файла (например, виртуальных машин), его можно оптимизировать для хранения и производительности для обоих вариантов использования.
Я нашел тот же вопрос: Ubuntu 17.04 - bash: cd: слишком много аргументов. Видимо, это ошибка.
Обходной путь, предложенный здесь, заключается в создании функции на основе встроенной команды cd, которая переопределяет ее поведение:
cd(){ builtin cd "${@:1:1}"; }
Поместите вышеуказанную строку в начало вашего скрипта а затем используйте cd a*, как в Ubuntu 16.04. Используйте export -f cd, если вы хотите использовать его в подклассе.
Вы можете определить и экспортировать функцию в файле ~/.bashrc:
cd(){ builtin cd "${@:1:1}"; }
export -f cd
Я нашел тот же вопрос: Ubuntu 17.04 - bash: cd: слишком много аргументов. Видимо, это ошибка.
Обходной путь, предложенный здесь, заключается в создании функции, основанной на встроенной команде cd, которая переопределяет ее поведение:
cd(){ builtin cd "${@:1:1}"; }
Поместите вышеуказанную строку в начало вашего скрипта а затем используйте cd a*, как в Ubuntu 16.04. Используйте export -f cd, если вы хотите использовать его в подклассе.
Вы можете определить и экспортировать функцию в файле ~/.bashrc:
cd(){ builtin cd "${@:1:1}"; }
export -f cd
Я нашел тот же вопрос: Ubuntu 17.04 - bash: cd: слишком много аргументов. Видимо, это ошибка.
Обходной путь, предложенный здесь, заключается в создании функции на основе встроенной команды cd, которая переопределяет ее поведение:
cd(){ builtin cd "${@:1:1}"; }
Поместите вышеуказанную строку в начало вашего скрипта а затем используйте cd a*, как в Ubuntu 16.04. Используйте export -f cd, если вы хотите использовать его в подклассе.
Вы можете определить и экспортировать функцию в файле ~/.bashrc:
cd(){ builtin cd "${@:1:1}"; }
export -f cd
Это выглядит как ошибка в Bash: на man builtins старое поведение является правильным.
cd [-L|[-P [-e]] [-@]] [dir]
Change the current directory to dir. if dir is not supplied,
the value of the HOME shell variable is the default. Any
additional arguments following dir are ignored.
Вы можете сообщить об ошибке в списке рассылки bug-bash; подробнее здесь.
Собственно, ошибка была сообщена (давно). Если вы хотите, чтобы фиксированный Bash теперь, теперь, вот как это сделать правильно (тестирование на 17.10, также должно работать и на других).
Сначала создайте каталог для работы, например: [ ! d6]
mkdir ~/bash
cd ~/bash
Получить исходный пакет и зависимости сборки:
apt-get source bash
sudo apt-get build-dep bash
cd bash-4.4
Изменить config-top.h, чтобы изменить это (должна быть строка 32)
#define CD_COMPLAINS
[d9 ] к этому /* #define CD_COMPLAINS */
Измените debian/changelog и добавьте запись вверху (вы также можете использовать команду dch -i):
bash (4.4-5ubuntu1+cd) artful; urgency=medium
* Fix cd.
-- Firas Kraiem <firas@fkraiem.org> Thu, 04 Jan 2018 21:11:22 +0900
важными моментами являются добавление +foo к текущему номеру версии (foo может быть любой строкой строчных букв, и будьте осторожны, если вы используете dch -i, он увеличит последний номер, поэтому вам нужно вернуть его на текущий) и использовать правильное название выпуска (artful здесь). Наконец, запустите dpkg-source --commit.
Затем вы можете запустить команду debuild, и если все будет хорошо (ошибки в debsign могут быть проигнорированы), вы должны иметь некоторые .deb s в родительском каталог, который вы можете установить как обычно (нет необходимости устанавливать их все, только те, которые у вас есть сейчас, используйте dpkg -l | grep bash, чтобы узнать).
Обратите внимание, что номер версии нового пакет установлен таким образом, что вы автоматически получите какое-либо будущее обновление bash; если обновление не устраняет проблему, вам необходимо повторить описанный выше процесс.
Это выглядит как ошибка в Bash: на man builtins старое поведение является правильным.
cd [-L|[-P [-e]] [-@]] [dir]
Change the current directory to dir. if dir is not supplied,
the value of the HOME shell variable is the default. Any
additional arguments following dir are ignored.
Вы можете сообщить об ошибке в списке рассылки bug-bash; подробнее здесь.
Собственно, ошибка была сообщена (давно). Если вы хотите, чтобы фиксированный Bash теперь, теперь, вот как это сделать правильно (тестирование на 17.10, также должно работать и на других).
Сначала создайте каталог для работы, например: [ ! d6] mkdir ~/bash
cd ~/bash
Получить исходный пакет и зависимости сборки:
apt-get source bash
sudo apt-get build-dep bash
cd bash-4.4
Изменить config-top.h, чтобы изменить это (должна быть строка 32)
#define CD_COMPLAINS
к этому
/* #define CD_COMPLAINS */
Измените debian/changelog и добавьте запись вверху (вы также можете использовать команду dch -i):
bash (4.4-5ubuntu1+cd) artful; urgency=medium
* Fix cd.
-- Firas Kraiem <firas@fkraiem.org> Thu, 04 Jan 2018 21:11:22 +0900
важными моментами являются добавление +foo к текущему номеру версии (foo может быть любой строкой строчных букв, и будьте осторожны, если вы используете dch -i, он увеличит последний номер, поэтому вам нужно вернуть его на текущий) и использовать правильное название выпуска (artful здесь). Наконец, запустите dpkg-source --commit.
Затем вы можете запустить команду debuild, и если все будет хорошо (ошибки в debsign могут быть проигнорированы), вы должны иметь некоторые .deb s в родительском каталог, который вы можете установить как обычно (нет необходимости устанавливать их все, только те, которые у вас есть сейчас, используйте dpkg -l | grep bash, чтобы узнать).
Обратите внимание, что номер версии нового пакет установлен таким образом, что вы автоматически получите какое-либо будущее обновление bash; если обновление не устраняет проблему, вам необходимо повторить описанный выше процесс.
Это выглядит как ошибка в Bash: на man builtins старое поведение является правильным.
cd [-L|[-P [-e]] [-@]] [dir]
Change the current directory to dir. if dir is not supplied,
the value of the HOME shell variable is the default. Any
additional arguments following dir are ignored.
Вы можете сообщить об ошибке в списке рассылки bug-bash; подробнее здесь.
Собственно, ошибка была сообщена (давно). Если вы хотите, чтобы фиксированный Bash теперь, теперь, вот как это сделать правильно (тестирование на 17.10, также должно работать и на других).
Сначала создайте каталог для работы, например: [ ! d6] mkdir ~/bash
cd ~/bash
Получить исходный пакет и зависимости сборки:
apt-get source bash
sudo apt-get build-dep bash
cd bash-4.4
Изменить config-top.h, чтобы изменить это (должна быть строка 32)
#define CD_COMPLAINS
к этому
/* #define CD_COMPLAINS */
Измените debian/changelog и добавьте запись вверху (вы также можете использовать команду dch -i):
bash (4.4-5ubuntu1+cd) artful; urgency=medium
* Fix cd.
-- Firas Kraiem <firas@fkraiem.org> Thu, 04 Jan 2018 21:11:22 +0900
важными моментами являются добавление +foo к текущему номеру версии (foo может быть любой строкой строчных букв, и будьте осторожны, если вы используете dch -i, он увеличит последний номер, поэтому вам нужно вернуть его на текущий) и использовать правильное название выпуска (artful здесь). Наконец, запустите dpkg-source --commit.
Затем вы можете запустить команду debuild, и если все будет хорошо (ошибки в debsign могут быть проигнорированы), вы должны иметь некоторые .deb s в родительском каталог, который вы можете установить как обычно (нет необходимости устанавливать их все, только те, которые у вас есть сейчас, используйте dpkg -l | grep bash, чтобы узнать).
Обратите внимание, что номер версии нового пакет установлен таким образом, что вы автоматически получите какое-либо будущее обновление bash; если обновление не устраняет проблему, вам необходимо повторить описанный выше процесс.