私はFTPを介してサーバーに接続します(これがサーバーにアクセスする唯一の方法です)。 FTP経由でサーバーにコマンドを送信する必要があります。他のコマンドは動作しますが、次のコマンドを試してみると
site for file in *;do utime 20120101084400 ${file}; done;
特定のディレクトリのすべての日付を変更するには、エラーメッセージが表示されます。目的:表形式または無効なコマンド私が試しているこのコマンドのバリエーションによって異なります。
私はローカルUnix(サイトの一部なし)でこのコマンドを試しましたが、うまくいきましたが、FTPを介してリモートで動作しませんでした。
どうすればいいですか?これを再帰的に実行する方法がある場合は、追加ボーナスになります... :)
ありがとうございます。
答え1
許可されるSITE
コマンドは、使用されるFTPデーモンによって異なります(例SITE CHMOD
:vsftpd
;まだ少しあります。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ライブラリの使用。