Si vous cherchez à construire l'index d'un site FTP, c'est-à-dire à dresser la liste de tous les sous-répertoires et fichiers du site sans les récupérer, vous pouvez le faire :
wget -r -x --no-remove-listing --spider ftp://ftp.example.com/
où,
- -r => récursif (i.e. visite les sous-répertoires)
- -x => force la création des sous-répertoires du miroir sur le client
- --no-remove-listing => laisser les fichiers ".listing" dans chaque sous-répertoire
- --spider => visite mais ne récupère pas les fichiers
Cela créera une arborescence de répertoires épars de structure identique sur le client et le serveur, contenant uniquement des fichiers ".listing" montrant le contenu (le résultat de "ls -l") de chaque répertoire. Si vous voulez digérer cela en une seule liste de noms de fichiers qualifiés de chemin (comme vous le feriez avec "find . -type f"), faites-le à la racine de cette arborescence de répertoires épars :
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
ce qui vous donnera un résultat comme
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 : l'option "-maxdepth 999" n'est pas nécessaire dans ce cas d'utilisation, je l'ai laissé dans l'invocation que je testais qui avait une contrainte supplémentaire : limiter la profondeur de l'arbre qui était rapporté. Par exemple, si vous analysez un site qui contient des arbres de sources complets pour plusieurs projets, comme
./foo/Makefile
./foo/src/...
./foo/test/...
./bar/Makefile
./bar/src/...
./bar/test/...
alors vous pourriez ne vouloir qu'un aperçu des projets et des répertoires de premier niveau. Dans ce cas, vous donnerez une option comme "-maxdepth 2".