Как сделать apt-cache, apt-get в одну команду?

Мусор в ubuntu - это просто специальный подкаталог под домашней папкой пользователя, который по определению принадлежит этому пользователю. Даже если вы измените права доступа к файлам, пользователь может их изменить и удалить.

Если вы пытаетесь избежать потери данных, гораздо лучшим решением было бы настроить автоматическое резервное копирование - таким образом все, что удалось удалить, может быть восстановлено.

4
задан 26 September 2011 в 20:25

4 ответа

Вы можете создать скрипт со следующим контентом

#!/bin/bash

command="$1"; shift

case $command in
  add|depends|dotty|dump|dumpavail|gencaches|madison|pkgnames|policy|rdepends|search|show|showpkg|showsrc|stats|unmet|xvcg)
    apt-cache "$command" "$@"
    ;;
  autoclean|autoremove|build-dep|check|clean|dist-upgrade|dselect-upgrade|install|purge|remove|source|update|upgrade)
    apt-get "$command" "$@"
    ;;
esac

Предположим, вы его называете myapt. Затем, чтобы по-прежнему иметь преимущество завершения bash, вам нужно добавить следующие строки в ~/.bashrc:

_myapt() {
  _apt_get
  tt=("${COMPREPLY[@]}")
  _apt_cache
  COMPREPLY+=("${tt[@]}")
  return 0
} &&
complete -F _myapt $filenames myapt

К сожалению $command должен предшествовать любым параметрам, но кажется, что завершение bash не работает для параметров, которые следуют команде.

9
ответ дан 25 May 2018 в 18:39

Вы можете создать скрипт со следующим контентом

#!/bin/bash

command="$1"; shift

case $command in
  add|depends|dotty|dump|dumpavail|gencaches|madison|pkgnames|policy|rdepends|search|show|showpkg|showsrc|stats|unmet|xvcg)
    apt-cache "$command" "$@"
    ;;
  autoclean|autoremove|build-dep|check|clean|dist-upgrade|dselect-upgrade|install|purge|remove|source|update|upgrade)
    apt-get "$command" "$@"
    ;;
esac

Предположим, вы вызываете его myapt. Затем, чтобы по-прежнему использовать преимущество bash, вам нужно добавить следующие строки в ~/.bashrc:

_myapt() {
  _apt_get
  tt=("${COMPREPLY[@]}")
  _apt_cache
  COMPREPLY+=("${tt[@]}")
  return 0
} &&
complete -F _myapt $filenames myapt

К сожалению $command должен предшествовать любым параметрам, но кажется, что завершение bash не работает для параметров, которые следуют команде.

9
ответ дан 25 July 2018 в 21:17

Я не уверен, что вы можете использовать псевдоним для этого, но вы можете использовать bash для создания скрипта. Теперь я не сценарист bash, поэтому я не смог бы сказать вам точный код для этого, но то, что вы могли бы сделать, это что-то вроде этого (это просто псевдокод, вроде, так что не ожидайте его работы !!!):

var action
var input
get action, input
  if action == search
    then do apt-cache search input
  if action == remove
    then do apt-get remove input
  if action == install
    then do apt-get install input

Имейте в виду, что вы можете написать сценарий (или даже скомпилированное приложение) на том языке, который вам удобен, например, на python или ruby, например, должен быть bash.

(это просто псевдокод, вроде, так что не ожидайте, что он будет работать !!!) .

1
ответ дан 25 May 2018 в 18:39

Я не уверен, что вы можете использовать для этого псевдоним, но вы можете использовать bash для создания сценария. Теперь я не сценарист bash, поэтому я не смог бы сказать вам точный код для этого, но то, что вы могли бы сделать, это что-то вроде этого (это просто псевдокод, вроде, так что не ожидайте его работы !!!):

var action
var input
get action, input
  if action == search
    then do apt-cache search input
  if action == remove
    then do apt-get remove input
  if action == install
    then do apt-get install input

Имейте в виду, что вы можете написать сценарий (или даже скомпилированное приложение) на том языке, который вам удобен, например, на python или ruby, например, должны быть bash.

Опять же, помните, что мой пример - это просто псевдокод .

1
ответ дан 13 August 2018 в 12:36

Другие вопросы по тегам:

Похожие вопросы: