Когда подстановочные знаки должны быть внутри / снаружи двойных кавычек?
Как правильно использовать подстановочный знак и переменную для удаления многих файлов? Это моя переменная"$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"*
с подстановочными символами в кавычках? Или есть другой / лучший способ?
НОТА: вероятно, очевидно для некоторых, но только для справки и, чтобы быть ясным, то же самое относитсяls
напримерls "$dir/data/ffg_per_product/NAME"* | wc -l
в этом случае подстановочный знак должен быть вне двойных кавычек.