Удаление определенных файлов рекурсивно с помощью комнаты или чего-то простого?

Можно работать bindkey без аргументов для получения списка существующей привязки, например:

# Enter vi mode
chopper:~> bindkey -v

# Search for history key bindings
chopper:~> bindkey | fgrep history
"^[OA" up-line-or-history
"^[OB" down-line-or-history
"^[[A" up-line-or-history
"^[[B" down-line-or-history

В emacs режиме привязка, которую Вы хотите, history-incremental-search-backward, но это не связывается по умолчанию в vi режиме. Для привязки Ctrl-R самостоятельно можно выполнить эту команду или добавить его к Вашему ~/.zshrc:

bindkey "^R" history-incremental-search-backward

zshzle страница справочника (man zshzle) имеет больше информации о строчном редакторе zsh, bindkey, и emacs/vi режимов.

1
02.08.2013, 02:07
2 ответа

С ударом 4 +:

shopt -s globstar dotglob
rm -- **/pairs.txt

globstar опция делает ** соответствуйте любому количеству уровней каталога. dotglob опция заставляет его включать каталоги, имя которых начинается . (отметьте точкой файлы).

С ksh93 использовать set -o globstar вместо shopt -s globstar. Получить эффект dotglob, использовать FIGNORE=.

С zsh используйте вторую строку непосредственно. Для включения точечных файлов работать setopt glob_dots сначала или сделайте вторую строку rm -- **/pairs.txt(D).

Обратите внимание что удар ** переходит по символьным ссылкам к каталогам. Ksh и zsh's не делают.

3
27.01.2020, 23:53
  • 1
    Это было бы эквивалентом find -L . -name '.?*' -prune -o -name pairs.txt -exec rm {} + все же. Таким образом, это не следует за скрытыми директорами, но следует за символьными ссылками. bash получил его от ksh93 который получил его от zsh. zsh и ksh93 не имейте проблемы со следующими символьными ссылками. –  Stéphane Chazelas 01.08.2013, 11:55
  • 2
    Есть ли другое решение, которое не требует установки своего рода глобальной переменной как globstar? То, что я должен сделать, помещается эта команда в make-файле, и мне сказал мой босс, что это было бы более портативно, если бы мы не должны были изменять globstar Потрясающую опцию –  ishikun 05.08.2013, 03:38
  • 3
    @ishikun, который Вы уже дали более портативной опции в своем вопросе - использование, находит. –  Chris Down 05.08.2013, 09:00

ls -1R / | grep -e "/pairs.txt$" | xargs rm

-2
27.01.2020, 23:53
  • 1
    , Который повредится, если что-то в пути будет содержать пробел - не желательный. Используя ls обычно не хороший совет для этого типа вещи. –  Mat 01.08.2013, 10:09
  • 2
    Это не будет работать вообще с тех пор ls только выходные имена файлов, не пути. пробелы (TAB, NL, SPC) не являются единственными проблематичными символами, заключающие в кавычки символы также. –  Stéphane Chazelas 01.08.2013, 11:56

Теги

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