2013-12-11 30 views
0

我有一個簡單的問題。我希望這個腳本會說如果tar裏面有一個文件「echo tar successful!」否則「回聲沒有任何文件」。使用tar的Linux和其他文件是否有文件

這是我的腳本:

stat -c"%z;%n" * | grep '^2013-12-04' | awk -F';' '{ print $2 }' | xargs tar -zcvf file.tar.gz 
if[]?? 

回答

0

試試這個

如果它是成功

回聲$?將返回0

否則它將返回非零值。

其他選項是tar -tvf,它將測試存檔。基於tar -tvf的返回值。你可以檢查你的文件列表。但如果它是一個巨大的文件,你可能需要使用head -n來檢查前幾個文件。

這是一個很好的參考 http://unixhelp.ed.ac.uk/scrpt/scrpt2.2.2.html 〔實施例

您可以添加這樣的事情你的bash腳本。 (只是硬編碼的tar文件)

焦油-xvf test.tar>的/ dev/null的

如果[ 「$?」 -eq 0]

然後

回聲 「成功」

其他

回聲 「錯誤」

網絡

希望這有助於

Tharanga Abeyseela

0
function test_tar { 
    if [[ $(tar -ztvf $1 | wc -l) != 0 ]]; then echo 'tar successful!'; else echo "don't have any files"; fi 
} 

$ test_tar non_empty_tar 
tar successful! 
$ test_tar empty_tar 
don't have any files 
0

我覺得你的腳本有問題。

stat -c "%z;%n" * | grep '^2013-12-04' | awk -F';' '{print $2}' | xargs tar -zcvf file.tar.gz 
if [[ $(zcat file.tar.gz | tar -tf - | wc -l) != 0 ]]; then 
    echo 'tar successful!' 
else 
    echo "don't have any files" 
fi 
相關問題