qlist


Skrypt qlist wstępnie został napisany jako nakładka na program qlist z Gentoo. Z biegiem czasu dopisałem działanie na innych systemach. Aktualnie pracuję na Debianie, Archlinuksie i Gentoo. Aczkolwiek na Gentoo dawno nie testowałem.

Składnia:

qlist [pakiet] [wzorzec] [opcje]

Opis:

Co on takiego robi? Listuje zawartość pakietu w poszukiwaniu danego wzorca podanego jako parametr skryptu lub według wzorca wbudowanego. Dokładnie qlist jest nakładką na odpowiednie programy z danego OS. Tak np. dla Debiana będzie to dpkg -l, dla gentoo qlist, a dla archlinuksa pacman -Ql, itd. Wbudowane wzorce przedstawiają się następująco:

  • -b – listuje pliki zawarte w ścieżce *bin*
  • -m – listuje strony man
  • -d – listuje dokumentacje doc
  • -i – listuje pliki info
  • -e -listuje pliki konfiguracyjne w etc/
  • -l – listuje pliki językowe, locale
  • -p – listuje pliki graficzne wg. wbudowanego wzorca tj.: .png|.xpm|.svg|icons/|.jpg
  • -o – listuje pliki które nie pasują do wyżej wymienionych
  • -a – listuje wszystkie pakiety pasujące do wzorca(tylko dla debiana, ponieważ w innych systemach wystarczy zazwyczaj podać fragment nazwy pakietu)

Dodatkowe opcje programu:

  • -g – szukanie w zawartości plików z pakietu
  • –no-color – nie koloryzuje słowa pasujące do wzorca, domyślnie koloruje
  • -h – wyświetla powyższą pomoc

Jeśli zostaną podane dwa rodzaje wzorców do wyszukania: wbudowany i z linii poleceń  to na początku lista jest filtrowana według wbudowanych a dopiero później według zadanego.

I tak np pliki man dla mc:

$ qlist.sh -m mc
 /usr/share/man/
 /usr/share/man/es/
 /usr/share/man/es/man1/
 /usr/share/man/es/man1/mc.1.gz
 /usr/share/man/hu/
 /usr/share/man/hu/man1/
 /usr/share/man/hu/man1/mc.1.gz
 /usr/share/man/it/
 /usr/share/man/it/man1/
 /usr/share/man/it/man1/mc.1.gz
 /usr/share/man/man1/
 /usr/share/man/man1/mc.1.gz
 /usr/share/man/man1/mcedit.1.gz
 /usr/share/man/man1/mcview.1.gz
 /usr/share/man/pl/
 /usr/share/man/pl/man1/
 /usr/share/man/pl/man1/mc.1.gz
 /usr/share/man/ru/
 /usr/share/man/ru/man1/
 /usr/share/man/ru/man1/mc.1.gz
 /usr/share/man/sr/
 /usr/share/man/sr/man1/
 /usr/share/man/sr/man1/mc.1.gz
 

Pliki „binarne” gimpa:

$ qlist -b gimp
 /usr/bin/gimp
 /usr/bin/gimp-2.6
 /usr/bin/gimp-console
 /usr/bin/gimp-console-2.6
 /usr/bin/gimp-remote
 /usr/bin/gimp-remote-2.6
 /usr/bin/gimptool
 /usr/bin/gimptool-2.0

Szukanie pliku pasującego do wzorca w picasa:

$ qlist picasa licen
 /opt/google/picasa/3.0/wine/lib/wine/license.exe.so
 /usr/share/licenses/picasa/LICENSE
 /usr/share/licenses/picasa/LICENSE.FOSS
 /usr/share/licenses/picasa/picasa.license

Przeszukiwanie zawartości plików:

 $ qlist mc -g 'command is any one-line shell'
 /etc/mc/mc.ext:40:# command is any one-line shell command, with the following substitutions:
 

Changelog:

1.4

* przepisano na nowo w perlu
* wyszukiwanie w zawartości plików, tylko pliki ASCII

Poprzednie wersje

  • podstawowe działanie na Gentoo
  • obsługa pakietów Debiana
  • obsługa pakietów Archlinuksa

Todo:

  • do prawidłowej pracy wymaga innych skryptów, uniezależnić
  • wyszukiwanie danego ciągu w zawartości pakietu – dodano w wersji 1.4

Download:

Dodaj komentarz