Perl FTP脚本在放置后保留文件的时间戳

Perl FTP脚本在放置后保留文件的时间戳,perl,unix,ftp,timestamp,Perl,Unix,Ftp,Timestamp,我知道FTP不支持传输和保留文件日期/时间戳 想知道是否有人有任何想法/脚本Shell/perl可以在put操作后保留传输文件的时间戳?您是否可以尝试将文件传输到tar文件中?从.tar中提取后,时间戳将被恢复 一种选择是rcp-p。我相信对于更安全的scp也存在一些等价物 正如Autocracy所指出的,如果可以,只需tar/zip/或者在传输和还原之前归档文件。不幸的是,这并不总是有效——比如说,如果您没有对文件源服务器的控制/访问权限 或者,在通过FTP获取文件后,使用Perl的utime

我知道FTP不支持传输和保留文件日期/时间戳
想知道是否有人有任何想法/脚本Shell/perl可以在put操作后保留传输文件的时间戳?

您是否可以尝试将文件传输到tar文件中?从.tar中提取后,时间戳将被恢复

一种选择是rcp-p。我相信对于更安全的scp也存在一些等价物

正如Autocracy所指出的,如果可以,只需tar/zip/或者在传输和还原之前归档文件。不幸的是,这并不总是有效——比如说,如果您没有对文件源服务器的控制/访问权限

或者,在通过FTP获取文件后,使用Perl的utime或Unix的touch命令将时间戳更改为正确的时间戳

需要注意的是,如果要将文件放到远程服务器上,则需要连接ssh/telnet/rsh以运行touch命令。有点麻烦,不是我推荐的,但即使是put也是有效的解决方案

是通过/bin/ftp进行的标准升级。查看ncftpput的-y选项:

-请尝试使用站点UTIME在远程主机上保留时间戳。没有多少远程FTP服务器支持此功能,因此它可能无法工作


您也可以放心,知道ncftp在Windows包含的大量平台上工作得很好

scp的等效选项是-pGood选项,但如何通过ftp命令解除启动?例如,我只能通过ftp访问此服务器站点或quote命令来执行受支持的系统命令。不幸的是,这因系统而异。例如,我认为proftpd永远不允许执行系统软件,而其他FTP系统可能使用“ls”来提供ls功能,但它确实提供了更改时间戳的站点UTIME 200412312359/path/to/some/file.txt方法。