多くのファイルを削除するためにワイルドカードと変数を使用する正しい方法は何ですか?これは、ここで私は、二重引用符内のワイルドカードを持っている"$dir"
ワイルドカードはいつ二重引用符の内側または外側にある必要がありますか?
$ echo "$dir"
/home/path/to/file
私の変数ですが、それは動作しません:
$ rm "$dir/data/ffg_per_product/ffg*"
rm: cannot remove `/home/path/to/file/data/ffg_per_product/ffg*': No such file or directory
ここで私は、二重引用符の外にワイルドカードを持っており、それが動作します:
$ rm "$dir/data/ffg_per_product/ffg"*
そして、ここで、あなたはファイルが削除された見ることができます:
$ ls -lth ffg_per_product/ffg* | wc -l
ls: cannot access ffg_per_product/ffg*: No such file or directory
0
私が知りたいのは、ファイルを削除するときに引用符を正しく使用していますか?rm "$dir/data/ffg_per_product/ffg"*
ワイルドカードで引用符を外すことはできますか?または、別の/より良い方法がありますか?
注:一部におそらく明らかちょうどrefererence用と明確にし、同じことがls
例えばのために適用されますls "$dir/data/ffg_per_product/NAME"* | wc -l
の場合、ワイルドカードは二重引用符の外側になければなりません。
関連では、答えにもっと多くの文脈があります。 http://stackoverflow.com/questions/10067266/when-to-wrap-quotes-around-a-variable – tripleee