-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdescompactar_zips.sh
More file actions
35 lines (32 loc) · 999 Bytes
/
Copy pathdescompactar_zips.sh
File metadata and controls
35 lines (32 loc) · 999 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/bash
# Função para descompactar um arquivo zip
descompactar_zip() {
local arquivo="$1"
local pasta="${arquivo%.zip}"
mkdir -p "$pasta"
unzip "$arquivo" -d "$pasta"
echo "Arquivo $arquivo descompactado na pasta $pasta"
}
# Verifica se o número de argumentos é válido
if [ "$#" -eq 0 ]; then
echo "Uso: $0 [-r] arquivo1.zip arquivo2.zip ..."
exit 1
fi
# Verifica se o parâmetro -r (recursivo) foi fornecido
if [ "$1" == "-r" ]; then
# Caso sim, o script será executado de forma recursiva para procurar arquivos zip
shift
# Utiliza o comando find para procurar arquivos zip nos subdiretórios
while IFS= read -r -d '' arquivo; do
if [[ "$arquivo" == *.zip ]]; then
descompactar_zip "$arquivo"
fi
done < <(find . -type f -name "*.zip" -print0)
else
# Caso não, o script será executado normalmente com os arquivos zip fornecidos
for arquivo in "$@"; do
if [[ "$arquivo" == *.zip ]]; then
descompactar_zip "$arquivo"
fi
done
fi