Sajna már jó ideje szenvedek az alábbi problémával:
Van egy mappaszerkezet melyben zip fájlok találhatók.
Sehogyan nem tudom megoldani hogy a zip fájlok a saját mappájukban kerüljenek kicsomagolásra.
A mappaszerkezet így néz ki:
fomappa/almappa1/valami1.zip
fomappa/almappa2/valami2.zip
fomappa/almappa3/valami3.zip
BASE_DIR="fomappa"
Próbálkoztam egyszerű find-del de nem jó.
find ${BASE_DIR} -name *.zip -exec unzip "{}" \;
ennek jó pár variációjaival is.
A fentivel az a baj, hogy mindig abba a mappába csomagol ki ahol kiadtam a parancsot.
Ezzel is próbálkoztam:
cd ${BASE_DIR}
for subDir in $(ls ${BASE_DIR}); do
if [ -d ${subDir} ]; then
cd ${subDir}
for zipFile in $(find ${BASE_DIR} -name *.zip -print); do
unzip ${zipFile}
# rm -f $zipFile
done
cd ..
fi
done
Ez utóbbi script addig jó, amíg csak egy almappa létezik. Utána már befuccsol.
A probléma okának azt látom hogy nem lehet megmondani az unzipn-ek hogy hová bontsa ki a tömörítvényt.
A rarral sokkal egyszerűbb volt:
find ${BASE_DIR} -name "*.rar" -exec unrar -y x "{}" *.srt "${IDE_BONTSD}" \;
- 1005 megtekintés
Hozzászólások
Nem teszteltem, de mukodnie kene:
find ${BASE_DIR} -type f -iname '*.zip' -exec sh -c 'file="{}"; cd "$(dirname "$file")"; unzip "$(basename "$file")"' \;
- A hozzászóláshoz be kell jelentkezni
Ez lesz az. Köszi.
- A hozzászóláshoz be kell jelentkezni