2

.tar.gz スクリプトにコマンドがある形式でサーバーからファイルをダウンロードしました

tar -zxvf data.tar.gz
rm -rf data.tar.gz

これを手動で実行すると、解凍されて内容が表示され、ファイルが削除されますdata.tar.gz ただし、スクリプトからこれを実行した後、保存されているフォルダーに移動すると、ファイルdata.tar.gzはそこにありますが、その内容はありません存在しています

私が得られないのは、解凍または削除されない理由です。

スクリプトの一部:

OUT=$(date +%Y%m%d -d yesterday)-blah.gz
wget ftp://blah:blah@ftp.haha.com/"$OUT" -O /myFolder/Documents/"$OUT"

tar -zxvf /myFolder/Documents/"$OUT"
#whent the file is unzipped it produces 2 files called abcd and efgh

#because i dont need abcd or the original zipped file
rm -rf /myFolder/Documents/"$OUT"
rm -rf /myFolder/Documents/abcd

OK SO 別の更新: これを cron で実行すると機能しませんが、bash で実行すると機能します。

4

2 に答える 2

2

問題は、tar の出力ディレクトリを指定していないことです。デフォルトでは、スクリプトを実行している場所からファイルを出力します。利用可能な修正がいくつかありますが、最も簡単なのは次のとおりです。

OUT=$(date +%Y%m%d -d yesterday)-blah.gz
wget ftp://blah:blah@ftp.haha.com/"$OUT" -O /myFolder/Documents/"$OUT"

cd /myFolder/Documents/
tar -zxvf "$OUT"
#whent the file is unzipped it produces 2 files called abcd and efgh

#because i dont need abcd or the original zipped file
#remember you cd'd here, after we're done ...
rm -rf "$OUT"
rm -rf abcd
#go back
cd -
于 2013-10-23T16:12:26.500 に答える