Se você deseja criar um índice de um site FTP, ou seja, listar todos os subdiretórios e arquivos no site sem realmente recuperá-los, faça o seguinte:
wget -r -x --no-remove-listing --spider ftp://ftp.example.com/
onde
- -r = > recursivo (por exemplo, visitar subdiretórios)
- -x = > forçar subdiretórios de espelho a serem criados no cliente
- - no-remove-listing = > deixar arquivos ".listing" em cada subdiretório
- - spider = > visite, mas não recupere arquivos
Isso criará uma árvore de diretórios esparsa de estrutura idêntica no cliente como o servidor, contendo apenas arquivos ".listing" mostrando o conteúdo (o resultado de "ls -l") para cada diretório. Se você quiser digerir isso em uma única lista de nomes de arquivos qualificados para o caminho (como você obteria de "find. -Type f"), faça isso na raiz dessa árvore de diretórios esparsos:
find . -type f -exec dos2unix {} \;
( find . -maxdepth 999 -name .listing -exec \
awk '$1 !~ /^d/ {C="date +\"%Y-%m-%d %H:%M:%S\" -d \"" $6 " " $7 " " $8 "\""; \
C | getline D; printf "%s\t%12d\t%s%s\n", D, $5, gensub(/[^/]*$/,"","g",FILENAME), $9}' \
{} \; 2>/dev/null ) | sort -k4
que lhe dará saída como
2000-09-27 00:00:00 261149 ./README
2000-08-31 00:00:00 727040 ./foo.txt
2000-10-02 00:00:00 1031115 ./subdir/bar.txt
2000-11-02 00:00:00 1440830 ./anotherdir/blat.txt
NB: a opção "-maxdepth 999" não é necessária neste caso de uso, deixei-a na invocação que estava testando que tinha uma restrição adicional: para limitar a profundidade da árvore que foi relatada. Por exemplo, se você digitalizar um site que contenha árvores de origem completas para vários projetos, como
./foo/Makefile
./foo/src/...
./foo/test/...
./bar/Makefile
./bar/src/...
./bar/test/...
você pode querer apenas um esboço dos projetos e dos diretórios de nível superior. Nesse caso, você daria uma opção como "-maxdepth 2".