Decomprimere più file compressi e rinominare automaticamente i file con lo stesso nome, se necessario


0

Ho un sacco di file compressi in una cartella e vorrei decomprimere tutto, ma rinominare automaticamente cartelle o file con lo stesso nome, ad esempio:

In ZIP_folder_1.zipe ZIP_folder_2.zipho una cartella chiamata my_name, se decomprimo tutto con il comando sopra, la riga di comando mi chiederà se voglio rinominarla, quindi, se ho 3k cartelle con lo stesso nome, impazzirò.

Sto cercando di usare:

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

Ma sto vedendo

find: missing argument to `-exec'

L'altro punto è: posso passare una cartella di destinazione ??

Grazie!!!

Grazie.

Risposte:


0

L'argomento a -execè in genere la roba tra il -exece il\;

Prima proverei a mettere uno spazio tra il {}.contentse il \; ma non l'ho provato per vedere cosa potrebbe succedere

per l'altro punto, è probabilmente più facile modificare il punto di partenza findpiuttosto che immischiarsi nella -execclausola. Suggerisco qualcosa come di seguito, ricordando che $OLDPWDè la vecchia directory di lavoro precedente all'ultima cd (almeno in bash è, in tsch lo è $owd)

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

Potresti abbellirlo aggiungendo un ; cd $OLDPWDalla fine per riportarti al punto di partenza, se lo desideri

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.