Я пытаюсь перечислить все, что НЕ заканчивается на .tar * или * .tgz
Например
directory1/ ls -ltr * 06062018.tar.gz 06062018.tar.tgz 06062018.tgz 06062018/ directory2/06062018.tar.gz directory3/06062018.tar.tgz directory4/06062018.tgz directory5/06062018/ directory6/06062018.1/
Ожидается вывод:
0606218/ directory5/06062018/ directory6/06062018.1/
Что я исследовал: RegEx - Найти все, что не содержит шаблон Список всех файлов, которые не соответствуют селектору (с помощью ls) Список файлов, не соответствующих шаблону? Как отобразить список всех файлов, не заканчивающихся на .txt, используя команду ls и регулярное выражение?
Что я пробовал: ls -ltr * | grep -v $ tar.gz
ls -ltr * !(*.tar.gz) find ./* -maxdepth 1 ! -path "*tar.*" find . -maxdepth 1 ! -path "[*.tar.gz|*tgz]" ls -ltr | grep -v "[*tar*|*tgz]" ls -ltr */* --ignore=*.tar.gz --ignore=*tgz ls -ltr ./* --ignore=*.tar* --ignore=*tgz
Просто используйте два ! -name паттерна.
! -name
find * -maxdepth 1 ! -name '*.tar*' ! -name '*.tgz'