Я пытаюсь выполнить следующую команду в сценарии оболочки где adir="mydir"
и extType=*.txt
cp "$adir/$extType" "$destination"
Однако я добираюсь:
cp: cannot stat ‘mydir/*.txt’: No such file or directory
но существует такой каталог и если я выполняю его вручную в командной строке, он работает.
Какие-либо идеи что случилось?
Необходимо измениться "$adir/$extType"
кому: "$adir/"$extType
иначе расширение шарика не произойдет, и оно ищет файл точно с названием *.txt
который не может быть найден, и таким образом это жалуется на это с:
cp: cannot stat ‘mydir/*.txt’: No such file or directory
Ravexina уже указал хорошо, что globbing не работает в двойных или одинарных кавычках и btw, что синтаксис CP является неправильным при нескольких файлах / единственное место назначения и нуждается во флаге-t.
Что Вы могли сделать, поскольку альтернатива должна использовать массивы удара:
extType=( "$adir"/*.txt )
cp -t "$destination" "${extType[@]}"
С другой стороны, цикл
for i in "$adir"/*.txt ; do cp "$i" "$destination"; done