What is the correct way to use a wild card and a variable to delete many files? This is my variable "$dir"
$ echo "$dir"
/home/path/to/file
Here I have the wild card inside the double quotes, but it does not work:
$ rm "$dir/data/ffg_per_product/ffg*"
rm: cannot remove `/home/path/to/file/data/ffg_per_product/ffg*': No such file or directory
Here I have the wildcard outside the double quotes and it works:
$ rm "$dir/data/ffg_per_product/ffg"*
And here you can see the files were deleted:
$ ls -lth ffg_per_product/ffg* | wc -l
ls: cannot access ffg_per_product/ffg*: No such file or directory
0
So what I want to know, is am I using the quotes correctly to delete the files rm "$dir/data/ffg_per_product/ffg"*
with the wildcard outise the quotes? Or is there another/better way?
NOTE: probably obvious to some but just for refererence and to be clear, the same applies for ls
e.g. ls "$dir/data/ffg_per_product/NAME"* | wc -l
, in that, does the wild card have to be outside the double quotes.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…