私のスクリプトコードは:
var="/some/path"
cp "$var*" "/another/path"
次に、それがスローされます:
cp: cannot stat '/some/path/*': No such file or directory
私はこれを試しましたが、同じエラーが発生しました:
cp "${var}*" "/another/path"
最後に、この問題を次の方法で解決しました。
cp "$var"* "/another/path"
今回はコマンドは正常に実行されますが、なぜか知りたいのですが。
説明していただけますか?
"$var*"
を使用すると、出力は/some/path*
になります。ここで、*
は文字と見なされます(二重引用符内にあるため、正規表現ではありません)。したがって、あなたのケース(/some/path/*
)では、cp
はpath
ディレクトリ内の*
という名前のファイル/フォルダーを検索しています。
二重引用符の外にある場合は、正規表現パターンと見なされます。つまり、path
で始まるすべてのもの(path1
、path2
など)を意味します。
またはpath/*
(そのディレクトリにあるもの)の場合。