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