Скопируйте все файлы с определенного расширения типа файла в сценарии

Я пытаюсь выполнить следующую команду в сценарии оболочки где adir="mydir" и extType=*.txt

cp "$adir/$extType" "$destination"

Однако я добираюсь:

cp: cannot stat ‘mydir/*.txt’: No such file or directory

но существует такой каталог и если я выполняю его вручную в командной строке, он работает.

Какие-либо идеи что случилось?

3
задан 7 October 2018 в 13:56

2 ответа

Необходимо измениться "$adir/$extType" кому: "$adir/"$extType иначе расширение шарика не произойдет, и оно ищет файл точно с названием *.txt который не может быть найден, и таким образом это жалуется на это с:

cp: cannot stat ‘mydir/*.txt’: No such file or directory
7
ответ дан 1 December 2019 в 13:11

Ravexina уже указал хорошо, что globbing не работает в двойных или одинарных кавычках и btw, что синтаксис CP является неправильным при нескольких файлах / единственное место назначения и нуждается во флаге-t.

Что Вы могли сделать, поскольку альтернатива должна использовать массивы удара:

extType=( "$adir"/*.txt )
cp -t "$destination"   "${extType[@]}" 

С другой стороны, цикл

for i in "$adir"/*.txt ; do cp "$i"  "$destination"; done
2
ответ дан 1 December 2019 в 13:11

Другие вопросы по тегам:

Похожие вопросы: