Угадайте полное имя файла

Добавьте следующее к своему .inputrc в ~/, чтобы сделать то, что Вы предложили:

"\e[B": history-search-forward
"\e[A": history-search-backward

Возможно, Вы могли бы также хотеть добавить следующее к своему .bash_profile:

export INPUTRC=~/.inputrc
4
27.11.2013, 21:58
2 ответа

Это - то, для чего шарики оболочки (среди прочего):

echo some_file_1*

Обратите внимание, что я использую echo вместо rm сознательно. Когда Вы удовлетворены, что Ваш шарик соответствовал точно файлу (файлам), который Вы хотите удалить, можно затем заменить echo с rm.

3
27.01.2020, 20:58

Функцией, которую Вы ищете, является автозавершение. Введите первые несколько символов имени файла на командной строке оболочки и нажмите Tab. Имя файла автоматически завершается, если префикс, который Вы ввели, однозначен.

Если будет неоднозначность, то оболочка, по крайней мере, завершится до такой степени, когда существует несколько возможностей. Например, если существуют названные файлы some_file_1, some_file_2 и some_fiddlesticks, и Вы вводите some_ затем нажмите Tab, затем символы fi вставляются (по крайней мере). В зависимости от Вашей конфигурации оболочки это может выбрать имя файла для завершения вместо простой вставки fi, и поведение при нажатии Tab неоднократно также, варьируется.

Автозавершение доступно из поля в ударе, zsh, (t) csh и рыба, а также некоторые варианты BusyBox. На большинстве ksh установок необходимо нажать Esc Esc instead of Tab.

Если Ваша оболочка не имеет завершения, можно использовать подстановочные знаки: войти rm some_file_1* удалить все файлы, имя которых начинается some_file_1. По сравнению с методом завершения это имеет недостаток того, чтобы быть очень неумолимым к опечаткам. Например, если будет другой файл, начинающийся с того же префикса, то он будет удален. Если Вы случайно помещаете пространство перед *, все файлы в текущем каталоге будут удалены. Можно поместить echo перед командой для наблюдения, что это сделает, затем выполните команду снова без echo выполнить операцию. С другой стороны, выполненный rm -i some_file_1* быть запрошенным каждое имя файла.

0
27.01.2020, 20:58

Теги

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