Gutes Massen Zip Script

Dieses Thema im Forum "Linux & BSD" wurde erstellt von helios, 21. März 2012 .

Schlagworte:
  1. 21. März 2012
    Warum ist das Ding besser als das Normale Zip / Rar?
    Weil es jede Datei einzelnt zipt und entpackbar macht. Grade für Rapidshare und Co ist das praktisch. Gehen wir mal von einer (kostenlos verfügbaren, legal hochladbaren) Serie aus.

    Stellt euch vor ihr ladet tagelang Dateien (oder eine große Datei runter) und am Ende fehlt eine Datei oder sie wird mittendrin gelöscht. Das ist Käse weil man nichts anschauen kann. Wenn jede Folge einzelnt gezippt ist, fehlt einem nur die letzt Folge und den Rest kann man sehen. Die letzte findet man vlt wo anders und die ganze Zeit war nicht umsonst.

    Es hat eine Grafische Oberfläche. Ordner zum Zippen auswählen, Ordner wo die gezippten Dateien gespeichert werden sollen auswählen, Passwort auswählen und alle Dateien werden einzelnt mit dem Password verschlüsselt.

    Das Script braucht 7zip.

    Bild

    Code:
    #!/bin/bash
    
    close__folderzip_programm=0
    zenity --info --text "Please select the folder which content you want to encrypt" --title "Files to Encrypt"
    source_folder=$(zenity --file-selection --directory)
    cd $source_folder
    
    zenity --info --text "Please select the folder where you want to save the encrypted files" --title "Save Folder"
    target_folder=$(zenity --file-selection --directory)
    
    password=$(zenity --entry --text "Please enter a password." --title "Choose password")
    
    if [ $? = 1 ]
    then
     close__folderzip_programm=1
     zenity --info --text "Encrypton canceled. Click ok to close programm." --title "Close Programm" 
    fi
    
    #mkdir ../archive/
    if [ "$close__folderzip_programm" -eq 0 ]
    then
     for file in $(ls)
     do 
     7za a $target_folder/`date +%H%M%S`.7z $file -p$password -mhe
     sleep 1
     done
    fi
    
     
  2. 21. März 2012
    AW: Gutes Massen Zip Script

    Dann lädt man diesen Part eben neu?

    Ist außerdem der falsche Bereich hier, Programmierung o.ä. passt wohl besser
     
  3. 21. März 2012
    AW: Gutes Massen Zip Script

    Die Idee ist das meineSerie.part999 fehlt (also wirklich gelöscht oder nicht hochgeladen wurde) und ich dann alle Teile bis dahin wegwerfen kann. Zumindest hatte ich das Problem öffnen von Archiven wo was fehlte.

    Übrigens kann man dann auch die einzelnen Serien Episoden anschauen auch wenn der Rest noch net fertig ist.
     
  4. 22. März 2012
    AW: Gutes Massen Zip Script

    Sehr gute idee finde Ich, wäre gute wenn du das unter die Leute bringen könntest.
    Am besten wäre wenn du das in eine Form bringst mit der jeder "Laie" das nutzen kann.
    (z.B. 7zip portable integriert oder so)
     
  5. 22. März 2012
    AW: Gutes Massen Zip Script

    Ich dachte tatsächlich an den Winamp Install (Nullsoft), gebündelt mit Zenity und Cygwin (und das bash dateien automatisch mit der cygwin shell geöffnet werden).
     
  6. 22. März 2012
    AW: Gutes Massen Zip Script

    btw, dafür haben wir hier nen angepinnten thread;-)...mfg coach
     
  7. 22. März 2012
    AW: Gutes Massen Zip Script

    Das geht auch bei ganz normalen RAR Splitarchieven, du machst einfach einen Hacken bei "Defekte Dateien beibehalten" dann entpackt der dir trotzdem alles, was er ohne die Datei entpacken kann. Ist also technisch ohne Weiteres möglich.

    Beispiel, Serie, 10 Folgen:

    Alle10Folgen.rar 100 MB
    Alle10Folgen.r00 100 MB
    Alle10Folgen.r01 100 MB
    Alle10Folgen.r02 100 MB
    [..]

    Deiner Logik nach könnte man Folge 1 jetzt nicht sehen ohne alle Parts zu laden. Das ist allerdings nicht der Fall, du kannst einfach rar bis r02 laden und da befindet sich dann die erste Folge (sofern sie zuerst gepackt wurde).

    Ergo ist dein Script in keiner Hinsicht besser. Man muss die meisten Dinge nur richtig bedienen. Dennoch BW dafür, dass du was selbst gescriptet hast, damit sind die Meisten hier ja schon überfordert.
     
  8. 22. März 2012
    AW: Gutes Massen Zip Script

    Oki das habe ich einfach nicht gewusst. Das Script hat dennoch den Vorteil das Folgen nicht in der Mitte geteilt werden.

    Zum 300 MB Archiv. Jede Folge 200 MB Gross.

    Folge 1 + 1/2 Folge 2 in Archiv 1.
    1/2 Folge 2 + Folge 3 in Archiv 2.

    Davon abgesehen das der normale Benutzer auch einfach damit klarkommt, wenn er 1 Archiv = 1 Episode, die er einfach so entpacken kann, an nimmt.
     
  9. 22. März 2012
    AW: Gutes Massen Zip Script

    Also wer bei Serien ganze Staffeln packt anstatt jede Folge einzeln, sollte meiner Meinung nach sowieso ausm UG geworfen werden..

    Zu deinem Script:
    Du wirst Probleme mit Leerzeichen in Dateinamen bekommen, da for nach dem InternalFieldSeperator (IFS) deine Zeichen auftrennt.. (Default sind afaik whitepaces)
    Wenn du also die Datei "The Big Bang Theory S01E01.avi" hast, dann wird in jedem Schleifendurchlauf auch nur eines der Wörter genutzt..
    Also im 1. Durchlauf "The", im 2. "Big", im 3. "Bang" und so weiter und sofort..

    Würde das eher so machen:
    Code:
    find "$SRC_FOLDER" -maxdepth 1 -type f | while read file; do
     echo $file
    done
    
     
  10. 22. März 2012
    AW: Gutes Massen Zip Script

    Grade keine Linux verfügbar. Kannst du das mal ausprobieren ob ich den Bug drinne habe und ob dein Fix hilft? Aufjedenfall danke
     
  11. 22. März 2012
    AW: Gutes Massen Zip Script

    Brauch ich nicht, ich weiß dass es nicht funzen wird...
    Aber bitte hier haste nen Beispiel:
    Code:
    gehtdichnixan@dergerät:~/Musik/Rise Against/Endgame $ ll
    insgesamt 97896
    drwxr-xr-x 3 gehtdichnixan gehtdichnixan 4096 Feb 14 15:09 .
    drwxr-xr-x 8 gehtdichnixan gehtdichnixan 4096 Feb 4 22:21 ..
    -rwxr-xr-x 1 gehtdichnixan gehtdichnixan 8128150 Feb 4 22:24 01 Architects.mp3
    -rwxr-xr-x 1 gehtdichnixan gehtdichnixan 8729734 Feb 4 22:24 02 Help Is On The Way.mp3
    -rwxr-xr-x 1 gehtdichnixan gehtdichnixan 8774712 Feb 4 22:24 03 Make It Stop (September's Children).mp3
    -rwxr-xr-x 1 gehtdichnixan gehtdichnixan 8273592 Feb 4 22:24 04 Disparity By Design.mp3
    -rwxr-xr-x 1 gehtdichnixan gehtdichnixan 8452440 Feb 4 22:24 05 Satellite.mp3
    -rwxr-xr-x 1 gehtdichnixan gehtdichnixan 9277236 Feb 4 22:24 06 Midnight Hands.mp3
    -rwxr-xr-x 1 gehtdichnixan gehtdichnixan 8750989 Feb 4 22:24 07 Survivor Guilt.mp3
    -rwxr-xr-x 1 gehtdichnixan gehtdichnixan 8539662 Feb 4 22:24 08 Broken Mirrors.mp3
    -rwxr-xr-x 1 gehtdichnixan gehtdichnixan 7532085 Feb 4 22:24 09 Wait For Me.mp3
    -rwxr-xr-x 1 gehtdichnixan gehtdichnixan 8131270 Feb 4 22:24 10 A Gentlemen's Coup.mp3
    -rwxr-xr-x 1 gehtdichnixan gehtdichnixan 8054899 Feb 4 22:24 11 This Is Letting Go.mp3
    -rwxr-xr-x 1 gehtdichnixan gehtdichnixan 7394268 Feb 4 22:24 12 Endgame.mp3
    drwxr-xr-x 2 gehtdichnixan gehtdichnixan 4096 Feb 14 15:09 .mediaartlocal
    gehtdichnixan@dergerät:~/Musik/Rise Against/Endgame $ for file in $(ls); do echo $file; done
    01
    Architects.mp3
    02
    Help
    Is
    On
    The
    Way.mp3
    03
    Make
    It
    Stop
    (September's
    Children).mp3
    04
    Disparity
    By
    Design.mp3
    05
    Satellite.mp3
    06
    Midnight
    Hands.mp3
    07
    Survivor
    Guilt.mp3
    08
    Broken
    Mirrors.mp3
    09
    Wait
    For
    Me.mp3
    10
    A
    Gentlemen's
    Coup.mp3
    11
    This
    Is
    Letting
    Go.mp3
    12
    gehtdichnixan@dergerät:~/Musik/Rise Against/Endgame $ find . -maxdepth 1 -type f | while read file; do echo $file; done
    ./08 Broken Mirrors.mp3
    ./03 Make It Stop (September's Children).mp3
    ./05 Satellite.mp3
    ./04 Disparity By Design.mp3
    ./11 This Is Letting Go.mp3
    ./07 Survivor Guilt.mp3
    ./06 Midnight Hands.mp3
    ./02 Help Is On The Way.mp3
    ./09 Wait For Me.mp3
    ./12 Endgame.mp3
    ./01 Architects.mp3
    ./10 A Gentlemen's Coup.mp3
    
     
  12. 22. März 2012
    AW: Gutes Massen Zip Script

    Dankeschön hast eine Bewertung und meinen Dank natürlich .
     
  13. 22. März 2012
    AW: Gutes Massen Zip Script

    Dann eben nen nettes
    Code:
    IFS=$(echo -en "\n\b")
    noch davor, und es funzt.

    Wäre mir persönlich lieber als nen gepiptes find.

    Edit:

    Wenn schon find, dann gepaart mit -exec:
    Code:
    find "$SRC_FOLDER" -maxdepth 1 -type f -exec echo {} \;
    
     
  14. 23. März 2012
    AW: Gutes Massen Zip Script

    Jap, aber du kannst meines Wissens nach im exec vom find keine Subshells aufrufen..
    Und da du ja in diesem Fall den basename der Datei brauchst, um die RAR's zu benennen muss man sich halt leider mit der Pipe und read behelfen..
     
  15. 23. März 2012
    AW: Gutes Massen Zip Script

    Den basename der Datei bekommt man doch via {}.

    Bitte korrigiere mich, falls ich das falsch sehen, aber:
    Code:
    find "$src_folder" -maxdepth 1 -type f -exec 7za a $target_folder/`date +%H%M%S`.7z {} -p$password -mhe \;
    
    sehe ich als äquivalent zu

    Code:
    for file in $(ls)
    do 
     7za a $target_folder/`date +%H%M%S`.7z $file -p$password -mhe
     sleep 1
    done
    
    an.
     
  16. 24. März 2012
    AW: Gutes Massen Zip Script

    Jain..
    Du bekommst nur den Dateinamen an sich, wenn du vorher per cd in das Verzeichnis gehst...
    Ansonsten enthält {} den Dateinamen + den Pfad, den du angegeben hast..
    Code:
    
    blubb@bla:~ $ find /tmp/test/
    /tmp/test/
    /tmp/test/4
    /tmp/test/3
    /tmp/test/2
    /tmp/test/1
    blubb@bla:~ $ cd /tmp/test/
    blubb@bla:/tmp/test $ find .
    .
    ./4
    ./3
    ./2
    ./1
    
    Man könnte halt natürlich vorher per cd da rein gehen, aber dann kannste den Dateinamen trotzdem nicht anständig machen..
    Dann haste ja name.avi.rar anstatt name.rar..

    MfG
     
  17. 24. März 2012
    AW: Gutes Massen Zip Script

    Hm stimmt. Das habe ich übersehen. Man könnte zwar (bestimmt) mit mehreren -exec das verknüpfen, aber dann bringt das ganze auch keine Vorteile mehr.

    Ich persönlich weiche nur subshells (also nicht nur normale pipes...) aus, da diese oft genug bei größeren scripten Kopfzerbrechen bescheren
     
  18. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.