問題が発生してエラーが発生しました。
bash: stp: command not found
(stpは実行したいファイルの名前です)
$PATH変数にプログラムがあるフォルダーがあっても同じです。いくつか確認しました。
- 実行中のシェルで$ PATHを編集したことを確認してください。私のホームディレクトリにある.bashrcファイルを編集して$HOME/bin
パスに追加しました。次のように入力してbashシェルにあることを確認しました。
$ ps $$
bash をコマンドとして返します。
- .bashrcに追加したものが実際にパスに影響を与えたことを確認しました(シェルを再起動した後、その後コンピュータも再起動しました)。タイプ
$ echo $PATH
/home/myself/bin
実際にはパスの一部として返されます。興味のあるファイルがフォルダ内にあることがわかりますが、/home/myself/bin
それは問題ではありません。そうですか?
-/pathtofile/stp
最終的にファイルが期待どおりに実行されました。それとも私がディレクトリにいることを確認してください./stp
。
だから、私の$ PATH変数にある場合は、bashシェルの正しい設定ファイルを編集し、bashを実行していることを確認してから、シェルを再起動しました。とても些細なことを見落としていると確信しています。私はUnix / Linux(Debianの実行)に初めて触れたので、すべての詳細を知りません。しかし、私の理解では、どこにいても何かを入力でき、パスを$ stp
検索して見つけることができるはずです。
答え1
興味のあるファイルは/home/myself/bin内のフォルダにありますが、それは問題ではありません。そうですか?
これは再帰的ではなく重要です$PATH
。
ファイルを移動できます。またはリンク(ハードまたはシンボル)を作成します。象徴的にはあまり混乱しないかもしれません。
ファイルが存在する場合は、次を/home/user/bin/sub-dir/stp
実行します。
ln -s sub-dir/stp ~/bin/stp
または、パスに新しいサブディレクトリを追加します。
PATH=$HOME/bin/sub-dir:$PATH