以下を使用してファイルを見つけ、最初の結果を $dir で設定されたディレクトリにコピーしようとしています。変数を設定せずに絶対パスを使用すると問題なく動作しますが、それは私が必要とするものではありません。
これは機能しません:
dir="/path/to/destination/";
mkdir "$dir";
locate -l 1 target_file.txt | awk '{print "cp " $1 $dir " "}' | sh
エラーメッセージは次のとおりです。
awk: illegal field $(), name "dir"
input record number 1, file
source line number 1
cp: fts_open: No such file or directory
これは機能します:
locate -l 1 target_file.txt | awk '{print "cp " $1 " /path/to/destination/"}' | sh