FTP Utimeをお試しください

FTP Utimeをお試しください

私はFTPを介してサーバーに接続します(これがサーバーにアクセスする唯一の方法です)。 FTP経由でサーバーにコマンドを送信する必要があります。他のコマンドは動作しますが、次のコマンドを試してみると

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

特定のディレクトリのすべての日付を変更するには、エラーメッセージが表示されます。目的:表形式または無効なコマンド私が試しているこのコマンドのバリエーションによって異なります。

私はローカルUnix(サイトの一部なし)でこのコマンドを試しましたが、うまくいきましたが、FTPを介してリモートで動作しませんでした。

どうすればいいですか?これを再帰的に実行する方法がある場合は、追加ボーナスになります... :)

ありがとうございます。

答え1

許可されるSITEコマンドは、使用されるFTPデーモンによって異なります(例SITE CHMODvsftpd;まだ少しあります。Apache FTPサーバー)。一般的に言えば、リモートシェル施設ではありません楽しみにしているようです。しかし、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

編集するまた見てくださいGilesはここに素晴らしい答えを与えました。Bashスクリプトとlftp

付録特定のスクリプト言語(Pythonなど)を好む場合は、次のこともできます。一部のFTPライブラリの使用

関連情報