Рекурсивные файлы в bash - PullRequest
2 голосов
/ 29 апреля 2010

У меня есть файлы, которые содержат имена файлов, указывающие на другие файлы. Эти файлы содержат дополнительные имена файлов, указывающие дополнительные файлы и так далее. Мне нужен скрипт bash, который рекурсивно следует за каждым файлом и регистрирует файл при каждом касании файла во время выполнения.

file1:
   file2
   file3

file2:
   file4

file3:
   file5

file4 и file5 пусты. Результат:

file1
file2
file4
file3
file5

1 Ответ

1 голос
/ 29 апреля 2010

Определение

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

Использование:

scan file1 > log

Обновление: принял комментарий Денниса Уильямсона и заменил cat $1 | while ... done на более эффективные while ... done < $1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...