lftpミラーディレクトリを使用しようとしていますが、.mp4や.swfなどの非常に大きなファイル形式をダウンロードしたくありません。しかし、正規表現に問題があります。グローバル変数を除外しているようです。どちらもすべてのファイルをダウンロードしました。
私が試したこと:
/usr/local/bin/lftp -u user,pass -e 'mirror -x ^(\.mp4|\.swf)$ $src $dest' ftp.host
&&
/usr/local/bin/lftp -u user,pass -e 'mirror -X swf $src $dest' ftp.host
答え1
最初のケースでは、パイプ(|)を引用する必要があります。 lftpの中でパイプ(|)が特殊記号でもあるからです(src変数とdest変数を挿入するには二重引用符を使用し、シェルで解釈されないようにバックスラッシュとドル記号を引用してください)。
/usr/local/bin/lftp -u user,pass -e "mirror -x '^(\\.mp4|\\.swf)\$' $src $dest" ftp.host
2番目のケースでは、次のようにglobモードを使用する必要があります。
/usr/local/bin/lftp -u user,pass -e "mirror -X *.mp4 -X *.swf $src $dest" ftp.host
とにかく、ミラーコマンドを自動化する前に、まず手動でテストすることをお勧めします。