ファイルを見つけて、最初に見つけたファイルを別のディレクトリに awk/copy する bash/shell 関数があります。残念ながらfile
、名前にスペースが含まれるディレクトリを含む場合、何らかの理由でパスが切り捨てられるため、すべてが失敗します。どうすれば修正できますか?
file.txt が /path/to/search/にある場合、スペースが悪い/ 失敗します。
dir=/path/to/destination/ | find /path/to/search -name file.txt | head -n 1 | awk -v dir="$dir" '{printf "cp \"%s\" \"%s\"\n", $1, dir}' | sh
cp: /path/to/search/spaces: No such file or directory
* file.txt が /path/to/search/ spacearebad / にある場合は機能しますが、スペースがないことに注意してください。:-/