2010-04-29 5 views
2

J'ai des fichiers qui contiennent des noms de fichiers pointant vers d'autres fichiers. Ces fichiers contiennent d'autres noms de fichiers pointant vers d'autres fichiers, etc. J'ai besoin d'un script bash qui suit chaque fichier récursivement et se connecte dans le fichier chaque fichier touché pendant l'exécution.Suivre les fichiers récursifs dans bash

file1: 
    file2 
    file3 

file2: 
    file4 

file3: 
    file5 

Les fichiers file4 et file5 sont vides. Résultat:

file1 
file2 
file4 
file3 
file5 

Répondre

1

Define

function scan() { 
    echo $1 
    local f 
    while read f ; do 
    scan $f 
    done < $1 
} 

Utilisation:

scan file1 > log 

Mise à jour: Dennis Williamson commentaire accepté et remplacé cat $1 | while ... done le plus performant while ... done < $1.

+1

Utilisation inutile de 'cat':' while ... done <$ 1' –

+0

@Dennis Williamson, mise à jour. Merci. –

Questions connexes