Shell

當我在腳本中執行時 cat 沒有加入我的文件

  • June 19, 2016

我正在執行還原備份腳本,當我嘗試加入拆分的文件時,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"

我檢查了文件是否存在並且它們在目錄中。我也嘗試在 shell 中執行命令並且工作正常。

我不知道我的劇本有什麼不好。

當我在目錄中執行 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 搜尋一個小星星,而不是擴展文件名。

嘗試

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"

最後這是解決方案:

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

我沒有逃脫*,我把它放在“”之外。感謝 Archemar 的回答。他幫助我找出我的錯誤。

引用自:https://unix.stackexchange.com/questions/290783