cat не присоединяется к моим файлам, когда я запускаю внутри скрипта

Я выполняю сценарий восстановления резервных копий, и когда я пытаюсь объединить файлы, которые разделены, cat выводит эту ошибку:

cat: fullbackup_mrbsNuevo_15_6_2016.tar.gz.*: No such file or directory

Строка, которая запускается Команда cat следующая:

cat $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz."\* > $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz"

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

Я не знаю, что плохого в моем сценарии.

Когда я запускаю команду ls в каталоге, это файлы:

cisco@Paquito1:/tmp/backup$ ls -lah
total 7,1M
drwxr-xr-x 2 cisco cisco 4,0K 2016-06-18 12:01 .
drwxrwxrwt 5 root  root  4,0K 2016-06-18 10:10 ..
-rw-r--r-- 1 cisco cisco 5,0M 2016-06-18 11:52 fullbackup_mrbsNuevo_15_6_2016.tar.gz.aa
-rw-r--r-- 1 cisco cisco 2,1M 2016-06-18 11:52 fullbackup_mrbsNuevo_15_6_2016.tar.gz.ab

И перед выполнением команды cat я перехожу в каталог / tmp / backup.

Заранее спасибо.

0
19.06.2016, 23:04
2 ответа

не следует экранировать *, это приведет к тому, что shell/bash будет искать литерную звезду, а не расширять имя файла.

try

cat $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz."* > $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz"

edit

on a side note I would quote

cat ${type}_${NAME_DIR}_${d}_${2}_${1}.tar.gz.* > ${type}_${NAME_DIR}_${d}_${2}_${1}.tar.gz"
0
28.01.2020, 04:50

Наконец, вот решение:

cat $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz."* > $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz"

Я не экранировал * и поместил его вне "". Спасибо Archemar за его ответ. Он помог мне найти ошибку.

0
28.01.2020, 04:50

Теги

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