在程序命令行中指定文件的路径

在程序命令行中指定文件的路径

我正在使用一个名为 Diamond 的程序,我有一个如下所示的脚本:

cd /srv/scratch/我的名字/你好
钻石爆炸 -d /srv/scratch/我的名字/再见/inputFile1.dmnd -q inputFile2.faa -o /diamond/outputFile.txt
我的inputFile2.faa工作目录 ( ) 中有一个,另一个目录中有另一个。由于这是一个巨大的文件并且正在其他命令行中使用,我不想将其移动到当前的工作目录,因为这是不切实际的。/srv/scratch/myname/helloinputFile1.dmndinputFile1.dmnd

当我运行此命令行时,我得到“没有这样的文件或目录”。有没有办法指定绝对/相对路径,以便我可以将其保存inputFile1.dmnd在中性目录中?

我希望这个问题的答案也能帮助我解决这个问题,但对我的outputFile.txt.我还想指定相对于我的工作目录将其放在哪个目录中;有没有办法做到这一点?

答案1

假设这些是真实路径,问题很可能出在字符上#

选项:

#1)如果可以避免,请勿在文件或目录名称中使用。因此,重命名/srv/scratch/#为其他名称,例如/srv/scratch/hash.您需要转义(见下文)才能执行此操作。

2)#用反斜杠转义:

diamond blastp -d /srv/scratch/\#/goodbye/inputFile1.dmnd -q inputFile2.faa -o /diamond/outputFile.txt

3) 用单引号转义完整文件名:

diamond blastp -d '/srv/scratch/#/goodbye/inputFile1.dmnd' -q inputFile2.faa -o /diamond/outputFile.txt

您可以使用标准命令(例如ls与文件名一起使用)和可选的 bash 选项卡完成(这将添加转义)来测试所有这些。

相关内容