Ftp
ftp mget 不要覆蓋
我在 ftp 腳本中使用 mget,並希望 mget 跳過獲取本地目錄中已存在的文件。有沒有這樣的方法?如果是這樣,如果本地和遠端文件不同,mget 還有一種方法可以繼續嗎?
編輯:兩者都是很好的答案,我選擇了第二個,因為它提供了一個我修改為的範例:
lftp $HOST -u $USER,$PASSWD -e 'mirror --verbose=3 --only-newer --include "my-extended-regex-expression-of-include-file-patterns" / transfer/'
有許多不同的
ftp
實現。我不知道有任何ftp
程序具有mget
在下載前檢查本地文件的命令。有許多程序可以通過 FTP 下載文件,並且確實有你想要的。
lftp ftp.example.com <<EOF mirror --only-missing --file=/path/to/*.ext . EOF
替換
--only-missing
為--only-newer
僅下載較新的文件。wget -nc 'ftp://ftp.example.com/path/to/*.ext'
添加
-N
僅下載較新文件的選項。或者,這是做複雜事情的最佳解決方案,掛載遠端文件系統,然後使用普通文件操作工具。您可以使用CurlFtpFS掛載 FTP 目錄。
mkdir mnt curlftpfs ftp://ftp.example.com/ mnt rsync -a --ignore-existing mnt/*.ext . # replace --ignore-existing by -u to download only newer files fusermount -u mnt