我写了一个 shellscript,它试图从 ftp 服务器中提取一个 tar 文件并在本地解压它。我需要从 tar 存档中提取特定文件。 tarfile 的文件名包含日期;我需要能够根据此日期选择一个 tar 文件。
abc_myfile_$date.tar
是我从 ftp 服务器拉取的文件格式。
我当前的代码如下所示:
for host in ftpserver
do
ftp -inv host <<END_SCRIPT
user username password
prompt
cd remotepath
lcd localpath
mget *myfile_$date*.tar
quit
END_SCRIPT
done
for next in `ls localpath/*.tar`
do
tar xvf $next *required_file_in_tar_file*.dat
done
当我运行脚本时无法解压文件
只有我提供了该文件的确切名称,我才能从 ftp 服务器获取单个 tar 文件。我想要一个名称中包含 myfile_$date
的文件。在此之后,我想将它解压缩到本地路径以获取该 tar 文件中的指定文件,其名称由我的 required_files
组成。
最佳答案
您获得了 .tar
文件,但使用 z
选项将其解压缩。压缩文件(那些需要 z
的文件)通常有 .tar.gz
前缀。尝试
tar xvf $next *required_file_in_tar_file*.dat
关于linux - 无法解压文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1345449/