В терминале Ubuntu (16.04 )вы можете выполнить Ctrl + { , а затем { и автоматически дополнить фигурные скобки файлами в каталоге. Он использует запятые вместо пробелов для разделения файлов. Например, каталог, содержащий эти файлы :
file.cpp file.h file.i file.py file_wrap.cxx
... будет автоматически завершено до этого :
$ cp file{.{cpp,h,i,py},_wrap.cxx}
#!/bin/bash
# script: list-nvidia.sh
# author: Craig Sanders <cas@taz.net.au>
# license: Public Domain (this script is too trivial to be anything else)
# options:
# default/none list the packages, one per line
# -v verbose (dpkg -l) list the packages
# -h hold the packages with apt-mark
# -u unhold the packages with apt-mark
# build an array of currently-installed nvidia packages.
PKGS=( $(dpkg -l '*nvidia*' '*cuda*' '*vdpau*' 2>/dev/null |
awk '/^[hi][^n]/ && ! /mesa/ {print $2}') )
case "$1" in
"-v") dpkg -l "${PKGS[@]}" ;;
"-h") apt-mark hold "${PKGS[@]}" ;;
"-u") apt-mark unhold "${PKGS[@]}" ;;
*) printf "%s\n" "${PKGS[@]}" ;;
esac
Этот сценарий может отображать установленные пакеты, связанные с nvidia -, по одному в строке или в подробном формате dpkg -l
.
Он также может использовать apt-mark
для удержания и снятия пакетов nvidia -Я использую эти параметры непосредственно перед и сразу после apt-get dist-upgrade
, чтобы убедиться, что драйвер nvidia обновляется только тогда, Я захочу его на (, т.е. когда я буду готов перезагрузить свою систему или убить и перезапустить X ).
Простой список (сprintf
)полезен, если я хочу делать другие вещи со списком, например использовать его в подстановке команд --, например. apt purge $(list-nvidia.sh)
. В именах пакетов Debian никогда не будет пробелов, символов новой строки и т. д., поэтому не нужно параноить по поводу цитирования.