Я выполняю сценарий восстановления резервных копий, и когда я пытаюсь объединить файлы, которые разделены, 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.
Заранее спасибо.
не следует экранировать *
, это приведет к тому, что 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"
Наконец, вот решение:
cat $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz."* > $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz"
Я не экранировал * и поместил его вне "". Спасибо Archemar за его ответ. Он помог мне найти ошибку.