【问题标题】:how to unzip the latest file only如何仅解压缩最新文件
【发布时间】:2016-01-30 04:18:24
【问题描述】:

我正在通过以下命令下载每日 FTP 文件:

wget -mN --ftp-user=myuser --ftp-password=mypassword ftp://ftp2.link.com/ -P /home/usr/public_html/folder/folder2

我的文件结构是这样的:

  • Data_69111232_2016-01-29.zip
  • Data_69111232_2016-01-28.zip
  • Data_69111232_2016-01-27.zip

请告诉我如何只提取最新下载的文件

通常使用以下命令解压缩文件,但我不知道应该添加什么来仅提取最新文件

unzip -o /home/user/public_html/folder/folder2/ftp2.directory/????.zip -d /home/user/public_html/folder/folder2/

你的帮助真的很感激

提前致谢

【问题讨论】:

    标签: ftp unzip


    【解决方案1】:

    更新答案

    我以为你的问题是关于 FTP 的,但可能是关于找到要解压缩的最新文件。

    你可以像这样获取最新的文件:

    newest=$(ls -t /home/user/public_html/folder/folder2/ftp2.directory/*zip | head -1)
    

    然后看到这样的值:

    echo $newest
    

    并像这样使用它:

    unzip -o "$newest" ...
    

    原答案

    您可能可以使用lftp 将某些内容串在一起。例如,我可以按相反的时间顺序获取列表,底部是最新的文件,如下所示:

    lftp -e 'cd path/to/daily/file; ls -lrt; bye' -u user,password host | tail -1
    

    【讨论】:

    • 感谢您的回答,但我的问题是我想解压缩命令只解压缩新存档,因为我们每天下载我在问题中提到的文件并保留它们,我想我需要正则表达式在我的解压缩命令中
    • 我又试了一次,请再看看。
    • 嗨,我还有一个问题,如果我手动执行它们,您提供的命令可以正常工作,但是当我试图将它们放入 shell 脚本时,每天自动执行它们不起作用,我解压缩了找不到我们需要的特定文件。你能帮我吗?谢谢
    • 在使用之前尝试将值回显到日志文件,例如latest=$(...); echo $latest >> /tmp/log.txt
    • 顺便说一下我用的是 CentOS :)
    猜你喜欢
    • 2010-09-15
    • 1970-01-01
    • 2022-12-21
    • 2021-09-12
    • 1970-01-01
    • 1970-01-01
    • 2017-02-03
    • 2011-10-30
    • 2020-01-01
    相关资源
    最近更新 更多