Ftp

嘗試通過 FTP 訪問 Utime

  • June 15, 2014

我正在通過 FTP 連接到我的伺服器(這是我特別可以訪問該伺服器的唯一方式)。我需要通過 FTP 向伺服器發送命令。其他命令有效,但是當我嘗試類似

site for file in *;do utime 20120101084400 ${file}; done;

要更改給定目錄中的所有日期,我收到一條錯誤消息,指出用法:表單格式無效命令,具體取決於我嘗試的該命令的變體。

我在本地 unix 上嘗試了這個命令(沒有站點部分),它可以工作,但不能通過 FTP 遠端進行。

我怎麼做?如果有辦法遞歸地做到這一點,那將是一個獎勵…… :)

謝謝。

允許SITE的命令因使用的 FTP 守護程序而異(例如,SITE CHMOD在; Apache 的 FtpServervsftpd中還有一些)。通常,這不是您所期望*的遠端 shell 工具。*但是,ProFTPd 顯然支持.SITE UTIME

因此,如果您的 FTPd 有問題SITE UTIME,您可以嘗試SITE UTIME客戶端循環中,像這樣(虛擬碼,沒有提到伺服器,還請記住,可能有空格(需要引號);您還需要一個多功能 FTP 客戶端(lftp可能是一個不錯的選擇)):

for file in $(./ftp-get-directory-list)
 do ftp-client -c "SITE UTIME ${file}"
done

編輯還可以在這裡看到Gilles關於 Bash 腳本和lftp.

附錄如果您使用某種腳本語言(例如 Python),您也可以使用一些 FTP 庫來幫自己一個忙。

引用自:https://unix.stackexchange.com/questions/58052