Mam kilka archiwów RAR rozmieszczonych w wielu katalogach, ale wszystkie w określonym folderze głównym na moim serwerze NAS opartym na Debianie. Czy ktoś może mi pomóc napisać prosty skrypt, który rekurencyjnie przejdzie do każdego folderu, rozpakuje zawartość, wróci do folderu nadrzędnego i przejdzie do następnego katalogu? Więc:
cd Photos/Summer/Italy/
unrar e Italy.rar
wait
cd ../France/
unrar e France.rar
wait
etc...
Więc po prostu skieruj go do folderu głównego „Zdjęcia”, a on przebije się przez to, że po drodze wszystko się nie robi ...
Np. Struktura katalogów:
*Photos:
-Summer
--Italy
---Italy.rar
---Italy.r01
---Italy.r02
--France
---France.rar
---France.r01
---France.r02
-Winter
--Siberia
---Siberia.rar
---Siberia.r01
---Siberia.r02
--Canada
---Snow.rar
---Snow.r01
---Snow.r02
script
nas
shell-script
rar
Touff
źródło
źródło
unrar
ma wbudowaną rekurencję za pomocą-r
Recurse subdirectories
przełącznika.unrar x -r <parent directory>
Wyodrębnia zawartość wszystkich podkatalogów<parent directory>
do każdego podkatalogu, zachowując dowolną strukturę katalogów istniejącą w.rar
plikach. Użyje
zamiast,x
jeśli struktura katalogów jest niepożądana.źródło
<parent directory>
. Nie umieści wyodrębnionych plików w podkatalogu obok.rar
plików. To zależy od tego, jaki wynik jest pożądany. OP nie był konkretny w tym przypadku. Czasami twoja odpowiedź jest dla mnie przydatna, ale innym razem potrzebujęfind
odpowiedzi.Jeśli chcesz przenieść nierozpoznane zdjęcia do innego miejsca docelowego, po prostu wpisz miejsce docelowe na końcu, w ten sposób:
find source_dir/ -name '*.rar' -execdir unrar e -o- {} /new/destination_dir/ \;
źródło