Presumindo bash ou ksh93 :
- Percorra a lista de URLs
-
Produza o URL para o terminal
while read -r url; do printf 'URL: "%s"\n' "$url" done <urls.txt -
Crie um nome de arquivo removendo caracteres indesejados do URL (alterando os caracteres que não estão em
A-Za-z0-9para_, removendo_consecutivos). -
Nome do arquivo de saída para o terminal
while read -r url; do printf 'URL: "%s"\n' "$url" outfile="$( tr -s -c 'A-Za-z0-9' '_' <<<"$url" )" printf 'File: "%s"\n' "$outfile" done <urls.txt -
Use
dirbe direcione a saída para o arquivowhile read -r url; do printf 'URL: "%s"\n' "$url" outfile="$( tr -s -c 'A-Za-z0-9' '_' <<<"$url" )" printf 'File: "%s"\n' "$outfile" dirb "$url" /usr/share/wordlists/dirb/small.txt -o "$outfile" done <urls.txt
Minha versão faz um pouco mais de sanitização do nome do arquivo do que apenas remover barras.
Além disso, o echo $i invocará a globalização de nomes de arquivos (teste com i='*' ).
Como não tenho um exemplo do seu arquivo urls.txt , é difícil dizer mais sobre isso.