Frage Kann wegen zu wenig Speicherplatz auf / boot nicht aktualisiert werden


Ich versuche es zu tun do-release-upgrade aber dann bekomme ich:

Nicht genügend freier Speicherplatz

Das Upgrade wurde abgebrochen. Das Upgrade benötigt insgesamt 25,7 M frei   Speicherplatz auf der Festplatte '/ boot'. Bitte befreie mindestens weitere 25,7 M   Speicherplatz auf '/ boot'. Leeren Sie Ihren Papierkorb und entfernen Sie temporäre Pakete   von früheren Installationen mit 'sudo apt-get clean'.

Ausgabe von df:

                    237251272 214797108  10402504  96% /
udev                    488120         4    488116   1% /dev
tmpfs                   198676       668    198008   1% /run
none                      5120         0      5120   0% /run/lock
none                    496684         0    496684   0% /run/shm
/dev/sda1               233191    225867         0 100% /boot

Warum ist beim Booten kein Platz mehr? Hier ist die Ausgabe von ls -as /boot:

total 221839
    4 .
    4 ..
  645 abi-2.6.32-34-generic-pae
  698 abi-2.6.35-30-generic-pae
  727 abi-2.6.38-12-generic-pae
  727 abi-3.0.0-12-generic-pae
  727 abi-3.0.0-13-generic-pae
  727 abi-3.0.0-14-generic-pae
  727 abi-3.0.0-15-generic-pae
  727 abi-3.0.0-16-generic-pae
  727 abi-3.0.0-17-generic-pae
  727 abi-3.0.0-19-generic-pae
  761 abi-3.0.0-20-generic-pae
  115 config-2.6.32-34-generic-pae
  128 config-2.6.35-30-generic-pae
  136 config-2.6.38-12-generic-pae
  140 config-3.0.0-12-generic-pae
  140 config-3.0.0-13-generic-pae
  140 config-3.0.0-14-generic-pae
  140 config-3.0.0-15-generic-pae
  140 config-3.0.0-16-generic-pae
  140 config-3.0.0-17-generic-pae
  140 config-3.0.0-19-generic-pae
  140 config-3.0.0-20-generic-pae
    5 grub
10773 initrd.img-2.6.32-34-generic-pae
13619 initrd.img-2.6.35-30-generic-pae
15365 initrd.img-2.6.38-12-generic-pae
16481 initrd.img-3.0.0-12-generic-pae
16487 initrd.img-3.0.0-13-generic-pae
16501 initrd.img-3.0.0-14-generic-pae
16476 initrd.img-3.0.0-15-generic-pae
16481 initrd.img-3.0.0-16-generic-pae
16478 initrd.img-3.0.0-17-generic-pae
   12 lost+found
  174 memtest86+.bin
  176 memtest86+_multiboot.bin
 1700 System.map-2.6.32-34-generic-pae
 1841 System.map-2.6.35-30-generic-pae
 2115 System.map-2.6.38-12-generic-pae
 2141 System.map-3.0.0-12-generic-pae
 2141 System.map-3.0.0-13-generic-pae
 2143 System.map-3.0.0-14-generic-pae
 2146 System.map-3.0.0-15-generic-pae
 2147 System.map-3.0.0-16-generic-pae
 2147 System.map-3.0.0-17-generic-pae
 2148 System.map-3.0.0-19-generic-pae
 2149 System.map-3.0.0-20-generic-pae
    2 vmcoreinfo-2.6.32-34-generic-pae
    2 vmcoreinfo-2.6.35-30-generic-pae
    2 vmcoreinfo-2.6.38-12-generic-pae
    2 vmcoreinfo-3.0.0-12-generic-pae
    2 vmcoreinfo-3.0.0-13-generic-pae
    2 vmcoreinfo-3.0.0-14-generic-pae
    2 vmcoreinfo-3.0.0-15-generic-pae
    2 vmcoreinfo-3.0.0-16-generic-pae
    2 vmcoreinfo-3.0.0-17-generic-pae
    2 vmcoreinfo-3.0.0-19-generic-pae
    2 vmcoreinfo-3.0.0-20-generic-pae
 4092 vmlinuz-2.6.32-34-generic-pae
 4347 vmlinuz-2.6.35-30-generic-pae
 4567 vmlinuz-2.6.38-12-generic-pae
 4675 vmlinuz-3.0.0-12-generic-pae
 4676 vmlinuz-3.0.0-13-generic-pae
 4681 vmlinuz-3.0.0-14-generic-pae
 4698 vmlinuz-3.0.0-15-generic-pae
 4700 vmlinuz-3.0.0-16-generic-pae
 4700 vmlinuz-3.0.0-17-generic-pae
 4703 vmlinuz-3.0.0-19-generic-pae
 4705 vmlinuz-3.0.0-20-generic-pae

Ausgabe von uname -a:

 Linux kitsch 3.0.0-17-generic-pae #30-Ubuntu SMP Thu Mar 8 17:53:35 UTC 2012 i686 i686 i386 GNU/Linux

115
2018-05-27 14:48


Ursprung


Fügen Sie die Ausgabe hinzu ls -l /boot und uname -a auf deine Frage. - jippie
Fügen Sie auch die Ausgabe hinzu dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' auf deine Frage. - jippie
ls -as /boot könnte stattdessen nützlich sein. Es wird nur die Größe der Dateien enthalten. - adempewolff
die Ausgabe von ls -l / boot ist ziemlich lang hier, also hier ist ein Pastebin pastebin.com/yM1aEJUx - clamp
Nein ist es nicht. Es ist die Ursache Ihres Problems. Wenn Ihre Frage zu lange dauert, wird sie von jemandem bearbeitet. Die Verwendung von externen Diensten wie Pastebin wird den Wert der Frage für zukünftige Referenz brechen. - jippie


Antworten:


Ihre / boot Partition ist mit alten Kernen gefüllt. Das tut es manchmal, nicht sicher, warum es nie repariert wird. Sie können die alten Kernel einfach entfernen, wenn Sie wissen, in welche Pakete sie gekommen sind.

Erste Überprüfung uname -a um Ihre aktuelle Version zu überprüfen.

Führen Sie dann den folgenden Befehl aus:

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'

Dieser Befehl listet alle Pakete auf, die Sie nicht mehr benötigen. Ich mag es nicht, sie automatisch zu entfernen, ich mag es, wenn es darum geht, Kernel zu entfernen. Also für jedes gelistete Paket folgendes tun:

sudo apt-get -y purge some-kernel-package

Intermezzo

Dieses Intermezzo beschreibt ausführlicher, wie die Befehle funktionieren und versucht, ein Problem damit zu beheben linux-libc-dev:amd64. Die meisten Benutzer können diesen Absatz überspringen.

  • dpkg -l 'linux-*' listet alle Pakete auf, die einen Namen haben, der mit 'linux-' beginnt
  • sed '/^ii/!d; remove all lines that do *not* start withii
  • uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/" finde die aktuell laufende Kernel-Version
  • /'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d Entfernen Sie alle Zeilen außer denen, die die aktuelle Kernel-Versionsnummer enthalten
  • s/^[^ ]* [^ ]* \([^ ]*\).*/\1/ Geben Sie für jede Zeile nur den Paketnamen an
  • /[0-9]/!d Entfernen Sie Zeilen, die keine Zahlen enthalten.

Reparieren Frederick Nords Problem Ich denke, der Befehl kann wie folgt geändert werden:

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d;/^linux-\(headers\|image\)/!d'

Es fügt im Grunde einen zusätzlichen Filter hinzu:

  • / ^ linux- (headers \ | image) /! d Löschen Sie alle Zeilen, die nicht mit beginnen linux-headers oder linux-image

/Intermezzo

Woher some-kernel-package kann mit einem der aufgeführten Pakete ersetzt werden. Beachten Sie jedoch, dass Sie die aktuell verwendeten Kernel - Pakete nicht entfernen (wie von der uname -a) z.B. sudo apt-get purge -y linux-headers-3.0.0-12 etc.

Es kann mit dem Befehl xargs weiter automatisiert werden, aber das mag ich nicht. Es ist eine persönliche Sache. Aber hier ist der Befehl dazu:

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge

Das ist was mein /boot sieht so aus, ein Ersatzkernel (2.6.38-11) nur für den Fall und 3.2.0-24 ist aktuell:

$ ls -l /boot
total 59388
-rw-r--r-- 1 root root   730545 Sep 13  2011 abi-2.6.38-11-generic
-rw-r--r-- 1 root root   791023 Apr 25 13:51 abi-3.2.0-24-generic
-rw-r--r-- 1 root root   130326 Sep 13  2011 config-2.6.38-11-generic
-rw-r--r-- 1 root root   140341 Apr 25 13:51 config-3.2.0-24-generic
drwxr-xr-x 3 root root     5120 May 27 17:46 grub
-rw-r--r-- 1 root root 20883146 Oct  1  2011 initrd.img-2.6.38-11-generic
-rw-r--r-- 1 root root 22474219 May  5 09:04 initrd.img-3.2.0-24-generic
drwxr-xr-x 2 root root    12288 Apr 16  2009 lost+found
-rw-r--r-- 1 root root   176764 Nov 27 11:00 memtest86+.bin
-rw-r--r-- 1 root root   178944 Nov 27 11:00 memtest86+_multiboot.bin
-rw------- 1 root root  2656297 Sep 13  2011 System.map-2.6.38-11-generic
-rw------- 1 root root  2884358 Apr 25 13:51 System.map-3.2.0-24-generic
-rw------- 1 root root     1369 Sep 13  2011 vmcoreinfo-2.6.38-11-generic
-rw------- 1 root root  4526784 Sep 13  2011 vmlinuz-2.6.38-11-generic
-rw------- 1 root root  4965776 Apr 25 13:51 vmlinuz-3.2.0-24-generic

Und Dateisystem-Nutzung:

$ df -h /boot
Filesystem Size Used Avail Use% Mounted
/dev/sda5  228M  63M  154M  29% /boot

155
2018-05-27 15:28



Diese Lösung wurde stark von einem Artikel von OzzyFrank inspiriert ubuntugenius.wordpress.com/2011/01/08/ ... - jippie
Ja, warum ist das ein Problem? Dies sollte nicht auf den Benutzer zu behandeln sein. - Elijah Lynn
FWIW: Das entspricht auch linux-libc-dev: amd64 für mich. Es ist also vielleicht ein bisschen zu großzügig. - Frederick Nord
It does that sometimes, not sure why it is never fixed Ubuntu hat die Entscheidung getroffen, regelmäßig neue Kernel als neue Pakete anstatt als Upgrades für bestehende Pakete bereitzustellen, um die Möglichkeit zu haben, mehrere Kernel installieren und zwischen ihnen wechseln zu können. Ich stimme zu, dass diese Annahme nicht für die 95% derer geeignet ist, die nur den neuesten Kernel (und vielleicht einen Fallback bei neuen Startproblemen) wollen und die installierten Kernel selbst nicht verwalten wollen. Vielleicht wird Ubuntu in Zukunft dieses Verhalten ändern. Stellen Sie vorerst sicher, dass Ihr / boot groß ist. - thomasrutter
@thomasrutter Wenn Sie (wie ich und die 95% der Leute, über die Sie sprechen) meinen, dass dieser Fehler wichtig ist, dann stimmen Sie hier ab: bugs.launchpad.net/ubuntu/+source/update-manager/+bug/1183692 - FriendFX


sudo apt-get autoremove 

hat den Trick für mich gemacht, es hat erfolgreich alle unbenutzten Kernel-Pakete aufgeräumt.


43
2018-04-24 09:18



das ist nicht richtig. von man apt-get autoremove wird verwendet, um Pakete zu entfernen, die automatisch installiert wurden, um Abhängigkeiten für einige Pakete zu erfüllen und die nicht mehr benötigt werden. Ein Kernel würde nicht installiert, um Abhängigkeiten zu erfüllen, sie werden während Upgrades installiert. - dward
@neon_overload Ich habe es gerade gepostet, weil es den Trick für mich gemacht hat. - topless
@dward Es hat etwas Platz für mich frei gemacht: vor autremove:  /dev/sda1, 240M total, 171M used, 57M free, 75% used /boot  nach:  /dev/sda1, 240M total, 129M used, 98M free, 57% used /boot - Stefan Rogin
@clickstefan die erste Antwort ist richtig. siehe auch askubuntu.com/questions/89710/ ... - dward
Es sollte eine Schaltfläche zum Ausführen dieser Aufgabe im Dialogfeld "Nicht genügend freier Speicherplatz" geben. Dies würde insbesondere neuen Benutzern helfen, die mit der Befehlszeile nicht vertraut sind. - Martin R.


Entspricht der akzeptierten Antwort - ein anderer (möglicherweise) einfacherer Weg ist die Installation des ubuntu-tweak Werkzeug, kann es heruntergeladen werden von Hier. Gehe zu "Hausmeister" und wähle "Old Kernel" zum Reinigen aus. Es kann in wenigen Klicks erledigt werden. (getestet am 14.04 Desktop)

enter image description here


8
2017-11-14 07:00



Situation mit Platzmangel auf /boot passiert die ganze Zeit, so ist dies meine Lieblingslösung - einfach zu bedienende Anwendung, die den Job mit einem Klick erledigt. - s3m3n


Im Vergleich zu anderen GUI-Antworten hier ist der Vorteil dieser Antwort natives Ubuntu Bash wird ohne Installation von Anwendungen von Drittanbietern verwendet.

Zenity und Bash basierte Lösung

Zenity bietet eine schöne GUI-Schnittstelle zum Terminal, um eine Liste zu bearbeiten und Elemente auszuwählen Radio Knöpfe:

rm-kernels 1

Der aktuelle Kernel, mit dem Sie gestartet haben, kann nicht entfernt werden und ist nicht in der Liste enthalten. Die angegebene Größe gibt an, wie viel gespeichert wird /bootVerzeichnis. Mehr wird auf Ihrer Festplatte gespeichert, da sich Kernel-Binärdateien auch in anderen Bereichen befinden. 27. Juli 2017 Hinweis: Die Verzeichnisse /usr/src/*kernel_version* und /lib/modules/*kernel_version* sind jetzt auch enthalten.

Das Änderungsdatum wird mit der gefunden stat Befehl. Auf meinem System ist dieses Datum "berührt" jedes Mal, wenn der Kernel mit diesem gebootet wird (Wie finden Sie heraus, wann eine bestimmte Kernel-Version zuletzt gebootet wurde?) Cron Skript neu starten. Auf Ihrem System ist das Datum jedoch das Veröffentlichungsdatum des Kernels, nicht das letzte Mal, als Sie es gestartet haben.

apt-get purge gibt Ihnen die Chance abzubrechen

Sie erhalten eine letzte Möglichkeit, alles zu sehen, was gelöscht wird, und sehen den gesamten Speicherplatz (etwas irreführend), der wiederhergestellt wird:

The following packages will be REMOVED:
  linux-headers-4.7.1-040701* linux-headers-4.7.1-040701-generic*
  linux-headers-4.7.2-040702* linux-headers-4.7.2-040702-generic*
  linux-headers-4.7.3-040703* linux-headers-4.7.3-040703-generic*
  linux-headers-4.8.1-040801* linux-headers-4.8.1-040801-generic*
  linux-headers-4.8.10-040810* linux-headers-4.8.10-040810-generic*
  linux-headers-4.8.11-040811* linux-headers-4.8.11-040811-generic*
  linux-headers-4.8.4-040804* linux-headers-4.8.4-040804-generic*
  linux-headers-4.8.5-040805* linux-headers-4.8.5-040805-generic*
  linux-image-4.7.1-040701-generic* linux-image-4.7.2-040702-generic*
  linux-image-4.7.3-040703-generic* linux-image-4.8.1-040801-generic*
  linux-image-4.8.10-040810-generic* linux-image-4.8.11-040811-generic*
  linux-image-4.8.4-040804-generic* linux-image-4.8.5-040805-generic*
0 upgraded, 0 newly installed, 24 to remove and 2 not upgraded.
After this operation, 2,330 MB disk space will be freed.
Do you want to continue? [Y/n] 

Der Code

Kopieren Sie diesen Code in eine ausführbare Datei mit dem Namen rm-kernels im /usr/local/bin:

#!/bin/bash

# NAME: rm-kernels
# PATH: /usr/local/bin
# DESC: Provide zenity item list of kernels to remove

# DATE: Mar 10, 2017. Modified Jul 28, 2017.

# NOTE: Will not delete current kernel.

#       With 10 kernels on an SSD, empty cache from sudo prompt (#) using:
#       # free && sync && echo 3 > /proc/sys/vm/drop_caches && free
#       First time for `du` 34 seconds.
#       Second time for `du` 1 second.

# PARM: If any parm 1 passed use REAL kernel size, else use estimated size.
#       By default `du` is not used and estimated size is displayed.

# Must be running as sudo
if [[ $(id -u) != 0 ]]; then
    zenity --error --text "root access required. Use: sudo rm-kernels"
    exit 99
fi

OLDIFS="$IFS"
IFS="|"
choices=()

current_version=$(uname -r)

for f in /boot/vmlinuz*
do
    if [[ $f == *"$current_version"* ]]; then continue; fi # skip current version
    [[ $f =~ vmlinuz-(.*) ]]
    v=${BASH_REMATCH[1]}        # example: 4.9.21-040921-generic
    v_main="${v%-*}"            # example: 4.9.21-040921

    # Kernel size in /boot/*4.9.21-040921-generic*
    s=$(du -ch /boot/*-$v* | awk '/total/{print $1}')

    if [[ $# -ne 0 ]] ; then    # Was a parameter passed?
        if [[ -d "/usr/src/linux-headers-"$v_main ]] ; then
             # Kernel headers size in /usr/src/*4.9.21-040921*
             s2=$(du -ch --max-depth=1 /usr/src/*-$v_main* | awk '/total/{print $1}')
        else
             s2="0M"            # Linux Headers are not installed
        fi
        # Kernel image size in /lib/modules/4.9.21-040921-generic*
        s3=$(du -ch --max-depth=1 /lib/modules/$v* | awk '/total/{print $1}')
    else
        # Estimate sizof of optional headers at 125MB and size of image at 220MB
        if [[ -d "/usr/src/linux-headers-"$v_main ]] ; then
             s2="125M"
        else
             s2="0M"            # Linux Headers are not installed
        fi
        s3="220M"
    fi

    # Strip out "M" provided by human readable option of du and add 3 sizes together
    s=$(( ${s//[^0-9]*} + ${s2//[^0-9]*} + ${s3//[^0-9]*} ))
    t=$(( t + s ))
    s=$s" MB"
    d=$(date --date $(stat -c %y $f) '+%b %d %Y') # Last modified date for display
    choices=("${choices[@]}" false "$v" "$d" "$s")
done

# adjust width & height below for your screen 640x480 default for 1920x1080 HD screen
# also adjust font="14" below if blue text is too small or too large

choices=(`zenity \
        --title "rm-kernels - Total: $t MB excluding: $current_version" \
        --list \
        --separator="$IFS" \
        --checklist --multiple \
        --text '<span foreground="blue" font="14">Check box next to kernel(s) to remove</span>' \
        --width=640 \
        --height=480 \
        --column "Select" \
        --column "Kernel Version Number" \
        --column "Modified Date" \
        --column " Size " \
        "${choices[@]}"`)
IFS="$OLDIFS"

i=0
list=""
for choice in "${choices[@]}" ; do
    if [ "$i" -gt 0 ]; then list="$list- "; fi # append "-" from last loop
    ((i++))

    short_choice=$(echo $choice | cut -f1-2 -d"-")
    header_count=$(find /usr/src/linux-headers-$short_choice* -maxdepth 0 -type d | wc -l)

    # If -lowlatency and -generic are purged at same time the _all header directory
    # remains on disk for specific version with no -generic or -lowlatency below.
    if [[ $header_count -lt 3 ]]; then
        # Remove all w.x.y-zzz headers
        list="$list""linux-image-$choice- linux-headers-$short_choice"
    else
        # Remove w.x.y-zzz-flavour header only, ie -generic or -lowlatency
        list="$list""linux-image-$choice- linux-headers-$choice" 
    fi

done

if [ "$i" -gt 0 ] ; then
     apt-get purge $list
fi

HINWEIS: Sie benötigen die sudo-Berechtigung, um die Datei zu erstellen. Verwenden Sie dazu:

gksu gedit /usr/local/bin/rm-kernels

Um Datei ausführbar zu machen:

sudo chmod +x /usr/local/bin/rm-kernels

HINWEIS: Für eine Serverversion (Text, nicht GUI) dieses Skripts siehe: Wie entferne ich alte Kernel-Versionen, um das Boot-Menü zu bereinigen?


28. Juli 2017 Updates

Die berechnete Größe jedes Kerns wurde übernommen /boot/*kernel_version* Das waren 5 Dateien mit insgesamt ~ 50 MB. Die Formel wurde geändert, um die Dateien in zu enthalten /usr/src/*kernel_version* und /lib/modules/*kernel_version*. Die berechnete Größe für jeden Kernel beträgt jetzt ~ 400 MB. Der obige Code für rm-kernels und rm-kernels-server wurde aktualisiert. Die obigen Beispielbilder spiegeln diese Änderungen jedoch noch nicht wider.

Standardmäßig wird die Größe der Dateien für Linux-Header auf 125 MB und Linux-Image auf 220 MB geschätzt du kann sehr langsam sein, es sei denn, Dateien befinden sich im Cache. Um die richtige Größe zu erhalten du Übergeben Sie einen beliebigen Parameter an das Skript.

Die Summe aller Kernelgrößen (mit Ausnahme der aktuellen laufenden Version, die nicht entfernt werden kann) wird jetzt in der Titelleiste angezeigt.

Das Dialogfeld, mit dem die Kernel jedes einzelnen angezeigt werden Letztes Zugriffsdatum. Dieses Datum kann während der Sicherung oder ähnlichen Operationen für alle Kernel Massen überschreiben. Das Dialogfeld zeigt jetzt das Änderungsdatum stattdessen.


2
2018-05-10 02:54



Du bist unglaublich! Wirklich super danke! Du hast mich glücklich gemacht! - zhartaunik


Mit synaptic package manager können Sie problemlos Kernel verwalten. Aber zuerst sollten Sie einen aktuellen Kernel-Release-Namen in der Terminal-Eingabeaufforderung kennen:

linux@linux-desktop:~$ uname -r 4.4.0-75-generic Also zumindest diese Version solltest du unberührt lassen. Öffnen Sie synaptisch und beginnen Sie mit dem Platzhalter für den schnellen Filter, wie unten gezeigt: enter image description here Jetzt können Sie alle Pakete, die Sie löschen möchten, auswählen und folgendermaßen vorgehen: Zur vollständigen Entfernung markieren -> Übernehmen. Ich würde vorschlagen, zumindest ein aktuelles aktuelles Kernel-Paket und einen vorherigen Kernel zu behalten. Zum Beispiel können Sie in diesem Fall sicher loswerden linux-image-4.4.0-66-generisch und linux-image-extra-4.4.0-66-generisch, aber es ist gut zu halten 4.4.0-72  und natürlich 4.4.0-75.


0
2018-05-07 10:39





Für die Befehlszeile:

https://github.com/erichs/bootnukem

git clone https://github.com/erichs/bootnukem.git
cd bootnukem
sudo ./install.sh

Dann

sudo bootnukem --dry-run

0
2018-05-09 16:57





Funktioniert auf Linux Mint 18.3 (basierend auf Ubuntu 16.04).

sudo apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | head -n -1) --assume-yes

Quelle: https://ubuntuforums.org/showthread.php?t=2248846&p=13146650#post13146650


0
2018-01-23 15:47