Ekstrakcja plików masowych

2

Informacja o systemie:

aggitan@moneque:~$ uname -a
Linux moneque 2.6.32-25-generic #44-Ubuntu SMP Fri Sep 17 20:05:27 UTC 2010 x86_64 GNU/Linux

aggitan@moneque:~$ 7z

7-Zip 9.04 beta  Copyright (c) 1999-2009 Igor Pavlov  2009-05-30
p7zip Version 9.04 (locale=en_US.utf8,Utf16=on,HugeFiles=on,2 CPUs)

Mam folder, w którym znajduje się 68 archiwów, od .rar, .ace i amp; .zamek błyskawiczny.

Chcę wyodrębnić wszystkie te pliki, używając ich nazwy folderu jako pierwszego katalogu („Wyodrębnij tutaj”)

Jeśli korzystam z rolki plików, zatrzymuje się przy pierwszym błędzie, nie ma flagi „ignoruj ​​błąd” dla wałka pliku.

Jeśli używam 7zip, zrzuca wszystko do bieżącego folderu i nie używa czystych folderów

Jak mogę wyodrębnić wszystko do oddzielnych folderów bez rozlewania wszystkiego do bieżącego katalogu?

aggitan
źródło

Odpowiedzi:

2

for i in *; do mkdir "$i.extracted"; (cd "$i.extracted" && 7z x "../$i") || echo "Error with $i"; done

Tobias Kienzler
źródło
2
Zrób to for i in *; do mkdir "$i.extracted"; (cd "$i.extracted" && 7z x "../$i"); done. W ten sposób, jeśli cd kończy się niepowodzeniem dla określonego katalogu, 7z nie działa w bieżącym katalogu.
Gilles
@Gilles: dobry punkt, dzięki. Dodano również komunikat o błędzie (mam nadzieję, że moje nawiasy są poprawne)
Tobias Kienzler
1
@Tobias: Dzięki nawiasom nie potrzebujesz cd ..: nawiasy tworzą podpowłokę, a zmiana katalogu jest lokalna dla tej podpowłoki.
Gilles
@Gilles: jeszcze raz dowiedziałem się czegoś nowego, dziękuję
Tobias Kienzler
Zrobiłem to dla mnie, dziękuję. Czy umieściłem link do askubuntu, czy powinienem link do tego, skopiuj wklej swoją odpowiedź lub możesz ją tam zamieścić? askubuntu.com/questions/8089/…
aggitan