andreyefgs
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Код: #!/bin/bash count=0 all_dir=() echo > /tmp/ftp_list.log #/////////////////Получение списка каталогов IFS=$'\n' function get_dirs() { dirs=() url="$1" all_dir+=("$url") arr=($(curl "$url")) for f in "${arr[@]}"; do col1=$(echo "$f" | awk '{print $1}') col9=$(echo "$f" | awk '{print $9}') if [[ "$col1" =~ ^d.*$ ]]; then dirs+=("${url}${col9}/") fi done for d in "${dirs[@]}"; do get_dirs "$d" done } get_dirs "ftp://ftp.ncftp.com//" #/////////////////Получение списка файлов for d in "${all_dir[@]}"; do arr=($(curl "$d" | egrep -i '^[^d].*\.(gz|bz2)' | awk '{print $NF}')) for f in "${arr[@]}"; do echo "${d}${f}" >> /tmp/ftp_list.log let count++ done done echo "Finish!" echo "${count} files" | |