我以.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运行它时,它不起作用,但是,当我运行它时,它可以工作。
答案 0 :(得分: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 -
答案 1 :(得分:1)
似乎你没有从你的档案所在的目录中启动你的脚本, 您必须在脚本中使用cd命令移动到该目录,然后启动tar和rm命令
编辑:
tar -zxvf /myFolder/Documents/"$OUT"
tar将在当前目录中提取存档。