Você está falando de uma lista de potencialmente qualquer coisa. Se você tem uma lista de nomes de arquivos, você pode facilmente criar uma iteração sobre ela com o bash e selecionar aqueles que são diretórios. Se você tem uma lista de URL, você pode fazer o mesmo para verificar quais existem na rede. Mas, é claro, a única parte que você pode generalizar é a iteração:
#!/bin/bash
IFS='
'
LIST='1
2
3
'
for I in $LIST
do
if [ -d $I ]; then
echo $I is a directory
elif [ -f $I ]; then
echo $I is a file
fi
done
Se você tiver dois arquivos chamados 1 e 3 e um diretório chamado 2, a saída será:
1 is a file
2 is a directory
3 is a file
Mas se você tiver uma lista de URLs, terá que alterar as condições de teste dentro do loop.