Ftp 如何仅解压缩最新文件
我通过以下命令下载每日FTP文件:Ftp 如何仅解压缩最新文件,ftp,unzip,Ftp,Unzip,我通过以下命令下载每日FTP文件: wget -mN --ftp-user=myuser --ftp-password=mypassword ftp://ftp2.link.com/ -P /home/usr/public_html/folder/folder2 我的文件结构如下: 数据_69111232_2016-01-29.zip 数据_69111232_2016-01-28.zip 数据_69111232_2016-01-27.zip 你能告诉我如何只提取最新下载的文件吗 我通常使用
wget -mN --ftp-user=myuser --ftp-password=mypassword ftp://ftp2.link.com/ -P /home/usr/public_html/folder/folder2
我的文件结构如下:
- 数据_69111232_2016-01-29.zip
- 数据_69111232_2016-01-28.zip
- 数据_69111232_2016-01-27.zip
unzip -o /home/user/public_html/folder/folder2/ftp2.directory/????.zip -d /home/user/public_html/folder/folder2/
你的帮助真的很感激
提前感谢更新答案 我以为你的问题是关于FTP的,但可能是关于找到要解压缩的最新文件 您可以获得如下最新文件:
newest=$(ls -t /home/user/public_html/folder/folder2/ftp2.directory/*zip | head -1)
echo $newest
unzip -o "$newest" ...
lftp -e 'cd path/to/daily/file; ls -lrt; bye' -u user,password host | tail -1
然后看到这样的值:
newest=$(ls -t /home/user/public_html/folder/folder2/ftp2.directory/*zip | head -1)
echo $newest
unzip -o "$newest" ...
lftp -e 'cd path/to/daily/file; ls -lrt; bye' -u user,password host | tail -1
然后像这样使用它:
newest=$(ls -t /home/user/public_html/folder/folder2/ftp2.directory/*zip | head -1)
echo $newest
unzip -o "$newest" ...
lftp -e 'cd path/to/daily/file; ls -lrt; bye' -u user,password host | tail -1
原始答案
您可能可以使用lftp
将某些内容串在一起。例如,我可以按相反的时间顺序获得列表,最新文件位于底部,如下所示:
newest=$(ls -t /home/user/public_html/folder/folder2/ftp2.directory/*zip | head -1)
echo $newest
unzip -o "$newest" ...
lftp -e 'cd path/to/daily/file; ls -lrt; bye' -u user,password host | tail -1
谢谢你的回答,但我的问题是,我想解压命令只解压新的归档文件,因为我们每天都下载我在问题中提到的文件并保存它们,我想我需要在解压命令中使用正则表达式我又试了一次,请再看一次。嗨,我有另一个问题,你提供的命令是完美的工作,如果我手动执行它们,但当我试图把它们放在shell脚本中,每天自动执行它们不工作,我得到解压找不到我们需要的具体文件。在使用日志文件之前,您能帮我将值回显到日志文件中吗,例如,
latest=$(…);echo$latest>>/tmp/log.txt
通过我使用CentOS的方式:)