重击找不到文件

时间:2019-05-25 22:01:32

标签: bash file-access debian-stretch

我正在通过Azure上的串行控制台将Debian 9作为VM运行。

链接到样本输入文件: https://drive.google.com/open?id=1aIIjWO70clU8u4_gV2X_8c17HmEnqjr_

antiSMASH的帮助人员给了我一些代码。它应该遍历文件夹中的genbank文件,并使用antiSMASH软件包对其进行处理:

for infile in inputs/*.gbk; do
    antismash $infile --taxon fungi --input-type nucl --knownclusterblast
done

我尝试在包含文件的目录中运行它,而我尝试在包含.gb文件的“ inputs”文件夹的目录中运行它:

(antismash) macpat@Debian9:~/inputs$ for infile in inputs/*.gb; do
> antismash $infile --taxon fungi --input-type nucl --knownclusterblast
> done
ERROR   25/05 21:53:00   No sequence file found at 'inputs/*.gb'

我跑了这个

(antismash) macpat@Debian9:~$ for infile in ~/inputs/*.gb; do echo $infile; done
/home/macpat/inputs/DQ660910.gb
/home/macpat/inputs/EU872212.gb
/home/macpat/inputs/GU930713.gb
/home/macpat/inputs/GU930714.gb
/home/macpat/inputs/HM180407.gb
/home/macpat/inputs/HM180409.gb
/home/macpat/inputs/HQ823618.gb
/home/macpat/inputs/HQ823619.gb
/home/macpat/inputs/HQ823620.gb
/home/macpat/inputs/HQ823621.gb
/home/macpat/inputs/JN408682.gb
/home/macpat/inputs/JQ340775.gb
/home/macpat/inputs/JX067626.gb
/home/macpat/inputs/JX067627.gb
/home/macpat/inputs/JX232185.gb
/home/macpat/inputs/JX232186.gb
/home/macpat/inputs/JX232187.gb
/home/macpat/inputs/JX232188.gb
/home/macpat/inputs/KJ501919.gb
/home/macpat/inputs/MG777489.gb
/home/macpat/inputs/MG777490.gb
/home/macpat/inputs/MG777491.gb
/home/macpat/inputs/MG777492.gb
/home/macpat/inputs/MG777493.gb
/home/macpat/inputs/MG777494.gb
/home/macpat/inputs/MG777495.gb
/home/macpat/inputs/MG777496.gb
/home/macpat/inputs/MG777497.gb
/home/macpat/inputs/MG777498.gb
/home/macpat/inputs/MG777499.gb
/home/macpat/inputs/MG777500.gb
/home/macpat/inputs/MG777501.gb
/home/macpat/inputs/MG777502.gb

这是我由antiSMASH人员发送的电子邮件:

  

尊敬的antiSMASH用户,

     

为了在许多输入文件上运行antiSMASH,我通常在   bash,就像这样:

for infile in inputs/*.gbk; do
    antismash $infile --your --other-options --here done
     

假设您的输入文件为GenBank格式,并且位于   您当前目录的子目录称为“输入”,antiSMASH将   依次对所有输入文件运行。我知道您要求“全部   一次”,但因为antiSMASH具有相当不错的CPU和内存   要求,尤其是在运行ClusterBlast时,我不会   建议。

     

最好的问候,凯

2 个答案:

答案 0 :(得分:1)

在失败的情况下,您写了inputs/*.gb。在带有回声的工作环境中,您写了~/inputs/*.gb

答案 1 :(得分:0)

inputs/是相对路径,这意味着您必须位于其父目录/home/macpat中才能起作用。要移至/home/macpat,可以运行cd

cd
for infile in inputs/*.gb; do ...

另一方面,~/inputs/是一条绝对路径,这意味着它将可以在任何地方使用。

for infile in ~/inputs/*.gb; do ...

或者,如果您想从~/inputs/中运行脚本,则可以运行以下命令:

cd ~/inputs
for infile in *.gb; do ...