apt-get autoremove에 의해 선택된 패키지 목록을 어떻게 얻을 수 있습니까?


13

apt-get autoremove선택한 패키지의 이름 만 인쇄하는 명령이 있습니까? 커널을 업데이트하고 이전 커널과 불필요한 패키지 ( apt-get autoremove)를 제거하는 스크립트를 작성하고 있지만에 의해 제거 될 패키지 목록을 화면에 인쇄하고 싶습니다 apt-get autoremove. 어떻게해야합니까?


당신은 그냥 그것을 실행할 sudo apt-get autoremove -y수 있어야하고 제거 해야하는 모든 것을 자동으로 제거해야합니다 ...

[여기 도움이 될 수도 있습니다.] 여기를 읽어보십시오. [1] [1] : serverfault.com/questions/433250/…
Doug

당신이 할 수 실제로 제거하지 않고 패키지 목록을 얻으려면sudo apt-get --dry-run autoremove
heemayl을

명령의 전체 출력이 아닌 패키지 이름을 얻고 싶습니다 ....
Afonso Sousa

답변:


13

이후 귀하의 의견에 따라 당신이 제거하려고하는 패키지 만 목록에 원하는 :

apt-get --dry-run autoremove | grep -Po '^Remv \K[^ ]+'

grep 명령 분석 :

  • -P: 주어진 패턴을 PCRE (Perl Compatible Regular Expression) 패턴으로 해석합니다.
  • -o: 전체 줄 대신 일치하는 문자열 만 인쇄합니다

정규식 분석 :

  • ^: 줄의 시작과 일치
  • Remv: Remv문자열 과 일치
  • \K: 일치하는 문자열에서 이전에 일치 한 하위 문자열을 제외합니다.
  • [^ ]+: 하나 이상의 문자와 일치하지 않습니다
$ apt-get --dry-run autoremove | grep -Po 'Remv \K[^ ]+'
libapache2-mod-php5
php5-readline
php5-cli
libonig2
libqdbm14
php5-json
php5-common 

1
@GeekLynxAfonso, 옵션 sudo과 함께 사용할 필요가 없습니다 --dry-run.
jarno

@jarno 이해가되지는 않았지만 아마도 필요하지 않은 사실은 나에게 발생하지 않았습니다. 감사합니다
kos

2

실제로 당신은 당신의 출력을 필터링해야합니다

sudo apt-get autoremove --dry-run 

명령.

예를 들어 당신은 그것을 할 수 있습니다

sudo apt-get autoremove --dry-run  | head -n 5 | tail -n 1

당신의 명령도 작동합니다 !! 그러나 나는 kos의 명령을 선호합니다 ...하지만 같은 감사합니다! :)
Afonso Sousa
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.