Как удалить часть пути в интерактивной оболочке?

Есть ли ярлык в bash и zsh для удаления одного компонента пути? Например, если я ls ~/local/color/ , а курсор находится в конце строки, есть ли ярлык для удаления color/ в конце? В идеале я хочу решения в режимах vi-mode и emacs

  • В команде не работает
  • <и << в UNIX / Linux
  • возможно ли раскрасить подсказку для контекстного меню (обратного-и-поиска)?
  • Как удалить файл с именем «°» в bash
  • Разделение аргумента командной строки bash
  • Печать переменной с обратной косой чертой в тире
  • Увеличение столбца каждый раз, когда выполняется скрипт
  • wget-файл, протоколирование вывода и отображение вывода в командной строке
  • Копирование файлов с несколькими расширениями
  • Отправляется ли процесс отказа от сигналов, отличных от SIGHUP?
  • Как удалить каталог автоматически при уничтожении исполняемого файла
  • Как перейти к началу пароля при вводе текста?
  • 3 Solutions collect form web for “Как удалить часть пути в интерактивной оболочке?”

    Наиболее часто используемые команды в режиме bash emacs по умолчанию для наиболее часто используемых клавиатур:

    движение

    • Ctrl- p или Вверх : предыдущая команда
    • Ctrl- n или Down : следующая команда
    • Ctrl- b или Left : предыдущий символ
    • Ctrlf , или справа : следующий символ
    • Altb : предыдущее слово
    • Altf : следующее слово
    • Ctrl- a или Home : начало команды
    • Ctrle , или End : конец команды

    редактирование

    • BkSpc : удалить предыдущий символ
    • Ctrl- d или Del : удалить текущий символ
    • AltBkSpc : удалить слово влево
    • Altd : удалить слово вправо
    • Ctrlu : удалить, чтобы начать команду
    • Ctrlk : удалить до конца команды
    • Ctrly : вставить последний разрез

    Разное

    • Cltr/ : отменить
    • Cltrr : инкрементный поиск назад назад

    Существует также unix-filename-rubout для Readline !

     # in ~/.inputrc # press ctrl-b to delete unix filename parts # see: man bash | less -p 'unix-filename-rubout' and # http://www.calmar.ws/vim/vi-bash.html set editing-mode vi set keymap vi "\Cb": unix-filename-rubout 

    По умолчанию bash (и я предполагаю, zsh) будет в emacs-режиме. Вы можете попробовать что-то вроде этого:

    Esc + b вернет курсор на одно слово. Ctrl + k будет удаляться до конца строки.

    Большинство современных оболочек (например, bash) будут реализовывать расширенные функции редактирования командной строки. Эти команды либо близки к редактированию emacs (Ctrl + A для начала строки, Ctrl + E для конца строки, …).

    Если вы знакомы с vi-подобными редакторами, вы можете попытаться разрешить vi-режим.

    set -o vi

    Он дает ваши режимы в виде оболочки (режим командной строки / вставки), и вы получаете доступ к стандартным командам (d для удаления, r для замены, …)

    В режиме Vi, вот как вы будете делать то, что вы описали:

     Esc (command mode); d; b. 
    Linux и Unix - лучшая ОС в мире.