CURLを使用してファイルサーバー上のフォルダーにFTPで接続し、そのフォルダー内のファイル数を数えるスクリプトを作成しようとしています。ファイルが5つ以上の場合は、最も古いファイルを削除してください。
CURLを使用してFTPを介してファイルを削除する方法を知っていますが、最も古いファイル名を計算してインポートすることは失われました。
答え1
カーリングではそうできないと思います。curl -l
ディレクトリの内容を一覧表示し、一致数を計算し、日付で並べ替え、rm
を使用するには実行する必要がありますcurl -Q
。
システムがサポートしている場合ヒューズ(ほとんどの場合)リモートディレクトリをファイルシステムとしてマウントすることをお勧めします。このアプローチを使用すると、問題を2つの別々のタスク、つまりリモートファイルをマウントしてアクセスするタスクと、ローカルファイルのように処理するタスクに分けることができます。あなたはそれを使用することができますカールファイルシステムリモートインストール用。
mkdir ftp.example.com
curlftpfs ftp.example.com ftp.example.com
cp -p /path/to/local/file ftp.example.com/remote/dir/
これで、ディレクトリ内の最も古いファイルを見つける最も簡単な方法は、zshとそのファイルを使用することです。グローバル予選。ディレクトリでの作業ftp.example.com/remote/dir/
:
files=(*(mm)) # Om = sort by date, youngest first
if ((${#files} > 5)); then
rm $files[-1] # remove the last file
# rm $files[6,-1] # remove all but the 5 youngest files
fi