bash 中的递归跟踪文件

发布于 2024-08-30 08:59:51 字数 263 浏览 3 评论 0原文

我的文件包含指向其他文件的文件名。这些文件包含指向更多文件的更多文件名等等。我需要一个 bash 脚本,它递归地跟踪每个文件,并在运行期间将每个触及的文件记录到文件中。

file1:
   file2
   file3

file2:
   file4

file3:
   file5

file4 和 file5 为空。 结果:

file1
file2
file4
file3
file5

I have files which contain file names pointing to other files. These files contain further file names pointing further files and so on. I need a bash script which follows each files recursively and logs into file every touched file during the run.

file1:
   file2
   file3

file2:
   file4

file3:
   file5

file4 and file5 are empty.
Result:

file1
file2
file4
file3
file5

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

野鹿林 2024-09-06 08:59:51

定义

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

用途:

scan file1 > log

更新:接受 Dennis Williamson 评论并替换 cat $1 | while...done 性能更好 while...done$1 。

Define

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

Use:

scan file1 > log

Update: accepted Dennis Williamson comment and replaced cat $1 | while ... done with the better performing while ... done < $1.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文