実行ファイルを実行するときに前に./を追加するのはなぜですか? [コピー]

実行ファイルを実行するときに前に./を追加するのはなぜですか? [コピー]

somecommands.sh私には1つあり、それを実行可能にするために使用しているとしますchmod 777。自分のディレクトリで実行するために./scommand.sh単に入力するのではなく、入力する必要があるのはなぜですか?somecommand.sh

これは言う?省略が可能な場合はどうすればよいですか?

ありがとう

ベストアンサー1

pwd現在のパス()が実行可能ファイルの検索パスにないため、これを行う必要があるかもしれません。

コンソールに次のように入力します。

echo $PATH | tr ':' '\n'

印刷された各フォルダは、実行可能ファイルの検索パスにあります(順番に)。

次のファイルを実行するにはその他ディレクトリの場合は、フル(相対パスまたは絶対)パスを指定する必要があります。

./script.sh

現在のディレクトリ(./、、ユーザーの場所に相対的)およびファイル名(script.sh)を表します。ルートフォルダから始めて、ファイルのフルパスを同じように使用できます/(たとえば/home/guo/script.sh、これがユーザー名でファイルがホームディレクトリにある場合)。

ヒントとして、このファイルを頻繁に使用する場合は、ローカル/binディレクトリ(~/binホームディレクトリなど)を作成し、たとえばそのファイルを配置することをおexport PATH="$HOME/bin:$PATH"勧めします.bashrc。次に、スクリプトをそのディレクトリに入れます。

別の点:使用しないことをお勧めします。777話実行権限で。代わりに私は提案する755話したがって、あなただけがファイルを上書きする権限を持っています。ファイルを実行可能にするには、通常は必要chmod +x script.shに応じて機能します。

上記と同様に、はい「現在の」ディレクトリをpath:に追加することは可能ですexport PATH=".:$PATH"が、これはお勧めできません。私強く~/binこれらのユースケースには、プライベートディレクトリ()を使用することをお勧めします。

おすすめ記事