Как вы можете все еще ls
файлы *{.tex, .aux}
Я бегаю неудачно
ls -I".tex"
ls -I*.tex -I*.aux
или же
ls --hide=*.tex --hide=*.aux
Если вы используете bash и у вас установлена опция оболочки extglob
(как обычно):
ls !(*.tex|*.aux)
Благодаря ответу @sth , я наконец-то нашел команду ls
которая работает с шаблоном выделения префикса (там опция Hide не работает); рассматривать:
touch MyDocument{.aux,.auxlock,.bbl,.bcf,.blg,.log,.out,.pgf-plot.gnuplot,.run.xml,.tex,.toc}
touch YourDocument{.aux,.auxlock,.bbl,.bcf,.blg,.log,.out,.pgf-plot.gnuplot,.run.xml,.tex,.toc}
ls # list all
# MyDocument.aux YourDocument.aux
# MyDocument.auxlock YourDocument.auxlock
# MyDocument.bbl YourDocument.bbl
# MyDocument.bcf YourDocument.bcf
# MyDocument.blg YourDocument.blg
# MyDocument.log YourDocument.log
# MyDocument.out YourDocument.out
# MyDocument.pgf-plot.gnuplot YourDocument.pgf-plot.gnuplot
# MyDocument.run.xml YourDocument.run.xml
# MyDocument.tex YourDocument.tex
# MyDocument.toc YourDocument.toc
ls MyDocument.* # prefix search glob only, works fine
# MyDocument.aux MyDocument.bcf MyDocument.out MyDocument.tex
# MyDocument.auxlock MyDocument.blg MyDocument.pgf-plot.gnuplot MyDocument.toc
# MyDocument.bbl MyDocument.log MyDocument.run.xml
ls --hide='*.tex' # works if no search glob is used
# MyDocument.aux MyDocument.pgf-plot.gnuplot YourDocument.blg
# MyDocument.auxlock MyDocument.run.xml YourDocument.log
# MyDocument.bbl MyDocument.toc YourDocument.out
# MyDocument.bcf YourDocument.aux YourDocument.pgf-plot.gnuplot
# MyDocument.blg YourDocument.auxlock YourDocument.run.xml
# MyDocument.log YourDocument.bbl YourDocument.toc
# MyDocument.out YourDocument.bcf
ls --hide='*.tex' MyDocument.* # does NOT work with prefix glob!
# MyDocument.aux MyDocument.bcf MyDocument.out MyDocument.tex
# MyDocument.auxlock MyDocument.blg MyDocument.pgf-plot.gnuplot MyDocument.toc
# MyDocument.bbl MyDocument.log MyDocument.run.xml
ls MyDocument!(.tex|.aux) # works with (FULL!) prefix
# MyDocument.auxlock MyDocument.blg MyDocument.pgf-plot.gnuplot
# MyDocument.bbl MyDocument.log MyDocument.run.xml
# MyDocument.bcf MyDocument.out MyDocument.toc
ls MyDocu*!(.tex|.aux) # does NOT work w/ partial prefix
# if * pattern does not terminate (is last before !)
# MyDocument.aux MyDocument.bcf MyDocument.out MyDocument.tex
# MyDocument.auxlock MyDocument.blg MyDocument.pgf-plot.gnuplot MyDocument.toc
# MyDocument.bbl MyDocument.log MyDocument.run.xml
ls MyDocu*.!(tex|aux) # does work w/ partial prefix, if * pattern terminates
# (here termination is with dot . coming before ! )
# MyDocument.auxlock MyDocument.blg MyDocument.pgf-plot.gnuplot
# MyDocument.bbl MyDocument.log MyDocument.run.xml
# MyDocument.bcf MyDocument.out MyDocument.toc
Таким образом, ответом для этого случая является использование ls PREFIX*.!(ext1|ext2)
, или другими словами: «перечислить файлы, начинающиеся с« PREFIX »и любые символы до точки«. », за которой не следует ext1 или ext2».
Если вы используете zsh с установленным параметром EXTENDED_GLOB:
pattern~negpattern
где 'pattern' - это то, что вы хотите сопоставить, за исключением всего, что соответствует 'negpattern'.
Пример:
ls -d *~*.mp3
перечислит все файлы в вашем cwd, кроме тех, которые заканчиваются на .mp3.
Если вы не используете zsh, попробуйте, этот вид интеллектуального расширения есть везде.
Вы можете использовать:
ls | grep -v *.tex | grep -v *.aux