我希望更多的專家會發現一些明顯的語法錯誤,或者能夠幫助我解決錯誤。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