Предположим, что у меня есть следующее дерево каталогов
.
├── a1
│ └── sub1
│ └── a1.zip
└── a2
└── sub2
└── a2.zip
Текущая директория содержит каталоги a1 и a2. Я хочу рекурсивно искать, находить и извлекать все zip-файлы и перемещать все до a1 и a2 соответственно. Состояние цели:
.
├── a1
│ ├── file1
│ └── file2
└── a2
├── file1
└── file2
Где файлы поступают из zip. Как это сделать? Какие инструменты я должен использовать в терминале для этого?
EDIT
Чтобы быть более конкретным, я упоминаю рекурсию, так как мы не знаем, сколько подкаталогов есть. Это может быть:
.
├── a1
│ └── sub1
│ └── sub...
│ └── a1.zip
│ └── text1.txt
└── a2
└── sub2
└── sub...
└── a2.zip
└── text2.txt
Цель:
.
├── a1
│ ├── file1_unzipped
│ └── text1.txt
└── a2
├── file1_unzipped
└── text2.txt
find . -type f -name "*.zip" -exec unzip {} +
for i in */; do find "$i" -type f -exec mv {} "$i" \; && rm -r "$i"*/; done
find . -type f -name "*.zip" -exec unzip {} +
for i in */; do find "$i" -type f -exec mv {} "$i" \; && rm -r "$i"*/; done
find . -type f -name "*.zip" -exec unzip {} +
for i in */; do find "$i" -type f -exec mv {} "$i" \; && rm -r "$i"*/; done