exglob отрицание не работает как ожидалось

Я пытался использовать отрицание, чтобы исключить каталоги из globbing, но каталоги все еще отображаются в соответствии с шаблоном:

bash-4.3$ ls file_1.txt testdir bash-4.3$ shopt extglob extglob on bash-4.3$ echo !(*/) file_1.txt testdir bash-4.3$ 

Что я делаю неправильно?

Примечание. Я знаю, что я могу использовать for цикла с помощью команды [ или find , но я пытаюсь выяснить, что extglob .

  • как вызывать awscli из pip install?
  • Распечатайте SVG из командной строки
  • Команда nmcli принимает только первую строку ssid?
  • Команда запуска / остановки в терминале без вмешательства человека?
  • Как искать несколько шаблонов поиска из файла с помощью grep
  • Изменить команду выбора блокировки xscreensaver
  • Как запустить набор программ внутри tmux или gnome-terminal в сценарии?
  • Как отключить вывод VLC в режиме командной строки?
  • One Solution collect form web for “exglob отрицание не работает как ожидалось”

    Вы не можете иметь / в @(...) !(...) , *(...)

    Параметр / может появляться только между глобами, даже a[x/y]b рассматривается как @(a\[x)/@(y\]b) . globs сначала разбиваются на / а каждая часть сопоставляется с содержимым каталога. Однако, если существуют расширения x(...) ksh glob, внутри / которые находятся внутри (...) , нет разделения, но каждая часть glob по-прежнему сопоставляется с именами файлов. In !(*/*) , */* Сопоставляется с каждым именем файла в текущем каталоге. Очевидно, что ни одно имя файла не может содержать / , поэтому оно ничего не соответствует, поэтому !(*/*) Соответствует каждому файлу.

    Здесь вы хотите использовать zsh и его квалификаторы glob:

     echo *(^/) 

    Для файлов любого типа, кроме каталога. Или быть противоположным bash */ (который является любым файлом каталога типов после разрешения symlink ):

     echo *(-^/) 

    (файлы, которые не являются ни каталогами, ни символическими ссылками на каталоги).

    Interesting Posts

    Создание файла из другого файла на основе числового значения в каждой строке

    Как разобрать таблицу для шаблона, если шаблон содержит пробелы

    Онлайн-тренировки?

    Ядро 4.12.3 не взаимодействует с bcmwl-kernel-source (Mint 18.2)

    Canon MX 920 печатает цвет, даже если я задаю оттенки серого

    Как добавить контрольную сумму MD5 содержимого электронной почты в bash?

    Kali Linux – Crunch – как поместить символ @ в созданный список

    Правильно установите разрешение на / home / user folder для веб-сервера

    У лимонного монетного двора есть проблемы с сбоями программ?

    Хорошо ли использовать tail -f в больших файлах журнала?

    Почему «интерактивный режим» не корректно отображает мои кодированные имена UTF-8?

    Настройка cron.hourly

    MATE: не отображается меню приложений QT (Skype, Virtualbox)

    Как удалить все файлы в текущем каталоге за исключением последних двух

    Какую графическую плату использует моя ОС?

    Linux и Unix - лучшая ОС в мире.