linux - 无法解压文件?

标签 linux unix ftp shell tar

我写了一个 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/

相关文章:

c - UNIX 进程行为

linux - 在单个 cron 任务上运行 10 多个 ls 命令?

.net - 将具有 CSV 格式的 PowerShell 对象直接写入 FTP

c# - 如何连接需要SSH的远程Mysql服务器?

linux - 在 Docker 中运行 RabbitMQ 服务器

linux - 如何在 Linux 中创建同时执行多项任务的 bash 脚本

python - 使用 Python 调整 Gnome

c - Linux C 套接字 - 绑定(bind)套接字从另一个接口(interface)接收数据包?

git - 如何在 git 存储库上正确使用组文件权限?

mysql - 正确的PHP文件上传权限