Bashスクリプトは現在のディレクトリには適用されません

Bashスクリプトは現在のディレクトリには適用されません

私はDebianベースのKali Linuxを使用しており、スクリプトの場所にあるいくつかのファイルを指定されたディレクトリにコピーするスクリプトを書いています。ただし、スクリプト(と呼ばれるCopyFiles.sh)を実行すると、cpコマンドはroot現在のディレクトリではなく適用されます。これは私のスクリプトです。

#!/bin/bash

cp -f * /var/www/

私も試してみましたが、./*同じエラーが発生しましたが、ディレクトリを自分のスクリプト(cdコマンド)に変更すると正常に動作します。次のスクリプトを問題なく使用できますが、追加のコマンドを使用したくないので、スクリプトが機能しない理由を知りたいです。

#!/bin/bash

SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
cp -f "$SCRIPT_DIR/"* /var/www/

答え1

このコマンドは、呼び出し元の現在のディレクトリ(つまり現在のディレクトリ)にcp -f * /var/www/一致するファイルをコピーします。*スクリプトがどこにあるかは問題ではありません。

関連情報