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

好的,所以另一个更新:当我用 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 回答
1

似乎您没有从存档所在的目录启动脚本,您必须在脚本中使用 cd 命令移动到该目录,然后启动 tar 和 rm 命令

编辑:

tar -zxvf /myFolder/Documents/"$OUT"

tar 将解压缩当前目录中的存档。

于 2013-10-23T16:01:37.680 回答