プログラムのコマンドラインでファイルパスを指定します。

プログラムのコマンドラインでファイルパスを指定します。

私はDiamondというプログラムを使用しており、次のスクリプトがあります。

CD /srv/スクラッチ/私の名前/こんにちは
ダイヤモンド爆発 -d /srv/scratch/私の名前/goodbye/inputFile1.dmnd -q inputFile2.faa -o /diamond/outputFile.txt
私の作業ディレクトリ()inputFile2.faaに1つがあり、別のディレクトリにもう1つあります。これは巨大なファイルであり、他のコマンドラインで使用されているため非実用的であるため、現在の作業ディレクトリに移動したくありません。/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タブの完成(エスケープの追加)を使用して、これらすべてをテストできます。

おすすめ記事