【问题标题】:Printing file paths using bash使用 bash 打印文件路径
【发布时间】:2016-07-11 19:38:01
【问题描述】:

我是一名学习 bash 的学生。我目前正在尝试打印一系列绝对文件路径来运行其他脚本。

目前echo $PWD, *In 不起作用。 我的文件结构看起来像。

/home/hayden/myProject/gene

在这个目录中有几个文件夹,但我对三个特别感兴趣。

/largeIn/
/mediumIn/
/smallIn/

在这些文件夹中,有不同名称的文件,它们都以.fa 结尾。

有没有一种简单的方法可以将文件路径提取到 txt 文件?

看起来像这样

/home/hayden/myProject/gene/largeIn/file.fa
/home/hayden/myProject/gene/mediumIn/file.fa
/home/hayden/myProject/gene/smallIn/file.fa

谢谢

编辑:@Afle 解决方案成功。

【问题讨论】:

  • 可能是ls $PWD/*In/*.fa?
  • 如果任务不是特别使用bash,我建议使用Unix工具find:find /home/hayden/myProject/gene/ -name '*.fa'
  • 您的问题是如何找到路径或如何提取它们?
  • 就是解压给他们
  • 感谢阿尔夫。您的解决方案有效!命令行工具箱里有这么多我不知道的东西。

标签: bash unix directory pwd


【解决方案1】:

查看标准 Linux find 实用程序。当您使用任何 shell 时,它将成为您的朋友,而不仅仅是 bash。它是用于在目录中递归查找文件的通用实用程序。

在您的特定情况下,您会执行以下操作:

找到 /home/hayden/myProject/gene -n​​ame '*.fa'

这将在 /home/hayden/myProject/gene 下找到名称以“.fa”结尾的任何文件(即使它们比“gene”低多个级别。

现在,如果您知道文件正是您的示例所在的位置,您可以简单地使用 bash 的 glob'ing 并将它们称为:

/home/hayden/myProject/gene/*In/file.fa

【讨论】:

    猜你喜欢
    • 2020-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-24
    • 2022-01-07
    • 2014-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多