rm -i -- !(*@(a|x).pdf)
Прочитайте как, удалите все файлы, которые не являются a.pdf или x.pdf.
Это работает, используя два расширенных шара, внешний !(), чтобы скрыть содержащиеся в нем glob который сам требует, чтобы glob должен соответствовать одному или нескольким шаблонам a или x до суффикса .pdf. См. Glob # extglob.
$ ls -a
.dotfile1 .dotfile2 a.pdf x.pdf y.zip z.mp3
$ echo -- !(a.pdf)
-- x.pdf y.zip z.mp3
$ echo -- !(x.pdf)
-- a.pdf y.zip z.mp3
$ echo -- !(a.pdf|x.pdf)
-- y.zip z.mp3
$ echo -- !(@(a|x).pdf) # NOTE.that this matches the .dotfiles* as well
-- . .. .dotfile1 .dotfile2 y.zip z.mp3
$ echo -- !(*@(a|x).pdf) # but this doesn't
-- y.zip z.mp3
$ echo rm -i -- !(*@(a|x).pdf)
rm -i -- y.zip z.mp3