Shell
當我在腳本中執行時 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"
我檢查了文件是否存在並且它們在目錄中。我也嘗試在 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 的回答。他幫助我找出我的錯誤。