私は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/
一致するファイルをコピーします。*
スクリプトがどこにあるかは問題ではありません。