it-swarm.com.de

So ahmen Sie die 7Zip-Kontextmenüoption "Extrahieren nach". "Unter Windows nach

Ich bin ziemlich neu in der Verwendung des Terminals und habe mich gefragt, wie ich einen Ordner mit ZIP-Dateien in Unterordnern ablegen soll, die den gleichen Namen haben wie die ZIP-Datei, aus der er extrahiert wurde.

Bisher habe ich gedacht, dass unzip '*.Zip' -d alle .Zip-Dateien in ein einziges Verzeichnis extrahiert, aber ich bin nicht sicher, wie ich Zielordner für den -d für jede .Zip-Datei erstellen soll.

Alternativ sieht es so aus, als ob das Nautilus Action Config Tool den Befehl 7Zip Extract To imitieren könnte, dies scheint jedoch etwas entmutigender zu sein.

2
D. Joe

Verwenden Sie die Option Nautilus Action Config Tool und rufen Sie mein script zippy.sh auf:

#!/bin/bash
# Unzipping and organizing files from nautilus
m=0 # counter
while [ -n "$1" ] && [ -f "$1" ]
do
    if [[ "$1" =~ \.Zip$ ]]
    then
        dir="$1"
        dir=${dir%.*}
        unzip "$1" -d "$dir"
        m=$(($m + 1))
        shift
    fi
done
zenity --info --text="Operations finished and "$m" Zip files unzipped"
exit 0
  1. Skript hier platzieren:

    ~/.local/share/nautilus/scripts/
    
  2. Mach es ausführbar mit chmod +x ~/.local/share/nautilus/scripts/zippy.sh

Erklärt:

  1. -n und -f prüfen, ob die Dateinummer nicht Null ist und ob die Datei die Datei ist

  2. =~ \.Zip$ Stellen Sie sicher, dass es sich um eine Zip-Datei handelt

  3. ${dir%.*} Schneiden Sie den Zip Teil des Dateinamens ab

  4. m=$(($m + 1)) Anzahl der Zip-Dateien, an denen gearbeitet wird.

  5. shift Dateien durchblättern

  6. zenity zeigt ein Meldungsfeld an, um den Abschluss des Vorgangs anzuzeigen

1
George Udosen

Ich habe ein Skript bearbeitet, das ich für den Dateinamen in den Ordnernamen gefunden habe, um es in den erstellten Ordner zu extrahieren.

Überarbeitet: Erstellen Sie in Ihrem Verzeichnis eine Datei mit:

#!/bin/bash
find . -type f ! -name "*exto*" | while read file;
do
    f=$(basename "$file")
    f1=${f%.Zip}
    mkdir "$f1"
    unzip "$f" -d "$f1" 
done

Im Terminal:

chmod +x exto
./exto
1
D. Joe

Sie können auch einfach die 7Zip-Version für Linux herunterladen. https://sourceforge.net/projects/p7Zip/files/ Es heißt p7Zip

https://www.ibm.com/developerworks/community/blogs/6e6f6d1b-95c3-46df-8a26-b7efd8ee4b57/entry/how_to_use_7Zip_on_linux_command_line144?lang=de Hier finden Sie auch eine sehr ausführliche Anleitung zur Installation und verwenden

0
roberthayek