Ftp
嘗試通過 FTP 訪問 Utime
我正在通過 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 庫來幫自己一個忙。