我希望更多的专家会发现一些明显的语法错误,或者能够帮助我解决错误。tar:can not stat:shell脚本运行时没有这样的文件或目录
脚本的基本思想: 我有一个shell脚本,将读取LIST.TXT,寻找我需要的,然后复制到另一个目录中的文件或文件夹。
工作环境: 的Ubuntu 12.04
问题/错误: 我修改之前,我有一个演示脚本复制所有工作正常的文件。然而,当我修改剧本,它给了我这个错误: 焦油XXXXX.ko不能静:没有这样的文件或目录 焦油与失败状态退出由于先前的错误
我修改的东西是列表的路径。
如下图所示#!/bin/sh
cd /home/leo/Desktop/Script_testing
INSTALL_PATH=./output/.install/
NAND2_PATH=./output/nand1-2_2
if [ ! -d $NAND2_PATH ]; then
mkdir $NAND2_PATH
fi
if [ ! -f /home/leo/Desktop/Script_testing/list2.txt ]; then
echo "error : list_2 not found : "
exit
fi
cd $INSTALL_PATH
tar cf - `cat /home/leo/Desktop/Script_testing/list2.txt` | (cd ../../../${NAND2_PATH} ; tar xf -)
这里
shell脚本代码是我list2.txt:
./app_drvier/led/led.ko
./Desktop/testing/beeper.h
./Desktop/testing/beeper.c
./bin/usb_plug.sh
./etc/hostname
当我运行./mycp.sh
目录“nand1-2_2:将创建在输出下,但是,我提到的错误显示为 tar : XXXXX cannot stat : No such file or directory tar : Exiting with failure status due to previous errors
希望有人能帮助我。谢谢你这么多
更新 我跑sh -x mycp.sh
后的结果如下
+ cd /home/dragon/Desktop/Script_testing
+ INSTALL_PATH=./output/.install/
+ NAND2_PATH=./output/nand1-2_2
+ [ ! -d ./output/nand1-2_2 ]
+ [ ! -f /home/dragon/Desktop/Script_testing/list2.txt ]
+ cd ./output/.install/
nand1-2_2.sh: 12: cd: can't cd to ./output/.install/
+ cd ../../.././output/nand1-2_2
nand1-2_2.sh: 13: cd: can't cd to ../../.././output/nand1-2_2
+ tar xf -
+ cat /home/dragon/Desktop/Script_testing/list2.txt
+ tar cf - ./app_drvier/ontech_led/onetech.led.ko
tar: ./app_drvier/ontech_led/onetech.led.ko: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
基本调试是使用'-x' bash的选项。运行'sh -x mycp.sh'并注意输出。 – Jdamian
@Jdamian我刚刚试过这个,我在那里发布了打印文件。请看看你有没有时间 –
你能看不到那里显示的错误吗?它们是有意义的 - 'INSTALL_PATH'不存在或者你没有访问(权限问题)。因此,'cd'命令无法工作。 – Jdamian