[Linux] filegröße ermitteln evt. auch auf Busybox?

  • lass mich mal nachfragen:
    ist das Verhalten der gezeigten Aufrufe innerhalb eines scripts anders, als wenn ich die direkt auf der Konsole durchführen lasse?


    Ich habe nämlich nicht probiert, wie das im script wird, sondern nur den Befehl auf der Konsole entsprechend abgesetzt und bei mehrzeilen Eingaben (ich nutzte einfach ein ls -l > /tmp/testfile und sparte mir den Part mit tar...) bekam ich keine gescheite Ausgaben, in der regel nur die Auwertung einer Zeile, wenn ich die read Konstruktion nutzte und bei sed zwar mehrere Zeilen, aber keine Summe aus den Werten.
    Ich probierte ausschließlich auf der Box.

    In meinen Beiträgen gehe ich grundsätzlich davon aus, dass ein unixoides Betriebssystem genutzt wird und alles, was ich zur Funktion von Boxen sage, bezieht sich stets auf die DM 7000 und gibt nur meinen derzeitigen Wissenstand wieder!

  • Die Größe des TAR-Files ist nicht identisch mit der Größe der Ursprungsdaten.
    Vermute das liegt daran das tar einzelne Dateien zu einer großen Datei zusammenfasst.
    Deshalb liefert ls -ls(a) xxxx.tar nicht immer die zu erwartende Größe nach dem extrahieren.
    ( Der Unterschied wird umso größer je mehr Dateien/Verzeichnisse
    das TAR File beinhaltet)


    Bpsl. an Hand des ascha191 Skin TAR Files



    pit234a
    bexbier wertet ja auch nur eine Zeile nämlich die mit dem TAR-File aus :winking_face:

    Code
    ls -lsa /tmp/test.tar > /tmp/temp


    Summe bilden:

    Code
    ls -l  | awk '{sum=sum+$5} END {print sum " Bytes"}'

    ( I love my menu's :winking_face: )
    E1 Quicktip: Blue-Panel -> (5) Quickbutton Einstellungen ->Plugin nach Name -> Flexmenu 1.94 :]
    E2 Quicktip: edit /etc/quickbutton.xml add this into plugins section then Blue-Panel -> (3) Extras/Einstellungen -> Quickbutton ->Plugin nach Name -> Menu Fantastic;)

    Einmal editiert, zuletzt von barabas ()

  • Siehste da meldet sich doch auch gleich einer zu wort =)


    Das mit dem einzel auswerten und dann zusammenzählen hatte ich auch erst überlegt, war aber zufaul das in code umzusetzten, und der wäre bei mir bistimmt auch um einiges länger geworden als die zeile von dir barabas :winking_face:


    Aber vergesst mal das mit dem zwischenschritt mit erst tar und dann gzip, hatte ja schon geschrieben das es ungefähr hin kommt, besser ist aber es gleich mit tar -tzvf auszulesen wie schon nen paar postings vorhergeschrieben. So:



    das müsste eigentlich genau sein ...

    MfG


    Bexbier



    :wmger: > Eine Kiste Bier ist etwas für zwei Leute, wenn einer nicht mittrinkt < :wmger:

  • Hehe,


    deine Lösung mit dem "erst taren", dann die größe ermitteln dann zippen habe ich aber schon eingebaut :tongue:


    Werde mir aber das mit "tar -tzvf" aber nöchmals genauer anschauen, nur nicht mehr heute.
    Bin fertig von der Arbeit die ich heute absolviert habe und will nun nur noch auf die Couch :winking_face:

    MfG EgLe :]

    Linux will Benutzer, die Linux wollen. Linux ist nicht Windows


    Kernel : 5.4.2-1-MANJARO LTS
    GUI : KDE 5.64.0 / Plasma 5.17.4
    Machine : Intel NUC8i7HVK
    Graphics : Radeon RX Vega M GH
    CPU : Intel Core i7-8809G @ 8x 4.2GHz
    RAM : Gskill F4-3000C16S-16GRS Speicherkarte so D4 3000 16GB C16 Rip

  • Zitat

    Siehste da meldet sich doch auch gleich einer zu wort

    hy bex :winking_face:


    Also, kann ja sein mir macht die Hitze zu schaffen, aber irgendwie haut das
    alles nicht so recht hin.....



    der Ausgabe von du -s(h) kann ich nicht so recht glauben
    und dann bleibt da immer noch die Frage warum das TAR File fast doppelt so groß ist wie die extrahierten Dateien.....


    @€gLe
    Couch ist gut...... :winking_face:

    ( I love my menu's :winking_face: )
    E1 Quicktip: Blue-Panel -> (5) Quickbutton Einstellungen ->Plugin nach Name -> Flexmenu 1.94 :]
    E2 Quicktip: edit /etc/quickbutton.xml add this into plugins section then Blue-Panel -> (3) Extras/Einstellungen -> Quickbutton ->Plugin nach Name -> Menu Fantastic;)

  • barabas
    weil nämlich, awk gibts nämlich leider auch nicht auf meiner Box und dann:


    also, das ist zwar nur eine Zeile tar, doch viele Zeilen Ausgabe.
    Nur im speziellen Fall bekomme ich da nur eine Zeile und das ist doch nicht, was ich mir vorstelle.
    Allerdings schaffe ich es auch nicht, trotz klar vorliegender Zahlen für jede Zeile eine Summe aus diesen zu bilden. Doch, es täte mich wundern, wenn das nicht ginge. Nur, ich weiß nicht wie, ohne awk...

    In meinen Beiträgen gehe ich grundsätzlich davon aus, dass ein unixoides Betriebssystem genutzt wird und alles, was ich zur Funktion von Boxen sage, bezieht sich stets auf die DM 7000 und gibt nur meinen derzeitigen Wissenstand wieder!

  • nabend barabas


    uhh man jetzt versteh ich auch erst die frage von cepheus wegen zusammenzählen, mit dem tarfile das ich zum testen benutzt hab war nur ein file drin, darum musst ich auch nix zusammen zählen :face_with_rolling_eyes: :O


    hatte natürlich unbewusst glück mit dem ls befehl *gg*


    also is der beste weg der den barabas grad gepostet hat (awk geht auf meiner 7000), also :


    Code
    echo "`tar -tzvf tmp/test.tar.gz | awk '{sum=sum+$3} END {print sum " bytes"}'`" >tmp/tarsize


    mensch barabas .... hast den vogel abgeschossen :winking_face:

    MfG


    Bexbier



    :wmger: > Eine Kiste Bier ist etwas für zwei Leute, wenn einer nicht mittrinkt < :wmger:

    Einmal editiert, zuletzt von bexbier ()

  • EgLe

    Zitat

    PS. Habe es getestet und soweit funktioniert das auch, aber leider auch nur die momentan verbrauchte Größe...


    Ja da hatte ich mich wohl irgendwie falsch verlesen , sonst hätte ich das nicht geschrieben. :face_with_rolling_eyes:
    Na aber wenigstens hab ich beim lesen mal wieder was über Scripte gelernt.



    Pit

    Zitat

    den tr -s hatte ich zunächst gar nicht verstanden, dachte dass cut auch so zurecht käme.


    DAS habe ich auch gedacht bis ich es dann mal ausprobiert habe. :winking_face:



    Gruss
    Dirk

    Es gibt keine Wahrheit, nur Informationen.
    Aus verschiedenen Köpfen, in verschiedenen Versionen
    -----------------Schwarzmarkt Funkhop Combo--------------------

  • pit234a


    eine mögliche Lösung ohne awk:


    ( I love my menu's :winking_face: )
    E1 Quicktip: Blue-Panel -> (5) Quickbutton Einstellungen ->Plugin nach Name -> Flexmenu 1.94 :]
    E2 Quicktip: edit /etc/quickbutton.xml add this into plugins section then Blue-Panel -> (3) Extras/Einstellungen -> Quickbutton ->Plugin nach Name -> Menu Fantastic;)

  • Hallo,


    Zitat

    Original von barabas


    eine mögliche Lösung ohne awk:



    Hmm, nein das geht nicht, zumindest auf meinem Linuxrechner :winking_face:


    Code
    egle@amd64-3800:/media/hdb7/Gemini/test$ ./e1-test.sh
    0 bytes
    egle@amd64-3800:/media/hdb7/Gemini/test$


    Wird kein Gößenwert angegeben.


    Aber wie gesagt ich habe diese Variante nun in das Script integriert:


    und funktioniert, werde da noch etwas experimentieren und wenn alles klappt,
    wird es in allen Scripten mit Übernommen :winking_face:


    Auszug aus dem Script


    Habe die alte Variante nur mal auskomentiert damit Ihr seht wie das vorher gelöst wurde,
    nur wie gesagt dies ging halt nicht auf den Busyboxen der Gemini-Images.


    Will dem nächst dann das Fertige Script hier neu posten
    http://www.i-have-a-dreambox.com/wbb2/board.php?boardid=257
    incl. einer Erklärung dazu, damit die User (gerade auch die Skinbastler usw. Ihre Geminitarballs
    recht bequem auf der Dreambox erstellen können incl. den Informationen die man für eine
    eigene useradon.xml benötigt, und auch gleich einer Infodatei fürs BluePanel falls das Addon
    dann ins BluePanel soll/kommt :winking_face:


    Aber bitte nagelt mich nicht auf ein Datum fest wann es erscheint,
    da hierbei noch ein paar andere Faktoren eine Rolle spielen...

    MfG EgLe :]

    Linux will Benutzer, die Linux wollen. Linux ist nicht Windows


    Kernel : 5.4.2-1-MANJARO LTS
    GUI : KDE 5.64.0 / Plasma 5.17.4
    Machine : Intel NUC8i7HVK
    Graphics : Radeon RX Vega M GH
    CPU : Intel Core i7-8809G @ 8x 4.2GHz
    RAM : Gskill F4-3000C16S-16GRS Speicherkarte so D4 3000 16GB C16 Rip