Das Entpacken mehrerer ZIP-Dateien und das Umbenennen von Dateien mit demselben Namen erfolgen bei Bedarf automatisch

386
FXux

Ich habe eine Reihe von ZIP-Dateien in einem Ordner, und ich möchte alle entpacken, aber automatisch Ordner oder Dateien mit demselben Namen umbenennen. Beispiel:

In ZIP_folder_1.zipund ZIP_folder_2.zipich habe einen Ordner namens my_name. Wenn ich alle mit dem obigen Befehl entpacke, werden Sie in der Befehlszeile gefragt, ob ich sie umbenennen möchte. Wenn ich also 3k-Ordner mit demselben Namen habe, werde ich verrückt.

Ich versuche zu benutzen:

find . -type f -name "*.zip" -exec unzip {} -d {}.contents/; 

Aber ich sehe

find: missing argument to `-exec' 

Anderer Punkt ist: Kann ich einen Zielordner übergeben?

Vielen Dank!!!

Vielen Dank.

0

1 Antwort auf die Frage

0
infixed

Das Argument zu -execist normalerweise das Zeug zwischen dem -execund dem\;

Ich würde zuerst versuchen, ein Leerzeichen zwischen {}.contentsund zu setzen, \; aber ich habe es nicht getestet, um zu sehen, was los ist

Für Ihren anderen Punkt ist es wahrscheinlich einfacher, den Startpunkt zu ändern, findals sich mit der -execKlausel zu mischen . Ich schlage etwas wie das Folgende vor. Ich erinnere daran, dass dies $OLDPWDdas alte Arbeitsverzeichnis von vor dem letzten ist cd (zumindest in bash ist es, in tsch ist es $owd)

cd targetdirectory; find $OLDPWD -type f -name "*.zip" -exec unzip {} -d {}.contents /;

Sie können es verschönern, indem Sie ; cd $OLDPWDam Ende ein a hinzufügen, um Sie zu Ihrem Ausgangspunkt zu bringen, wenn Sie möchten