lftpでパイプを使用する方法は?

lftpでパイプを使用する方法は?

私のデスクトップ端末にapkで終わるファイルがあります。

ls  | grep apk
DroidEdit_v1.23.6.apk

デスクトップコンピュータでlftpを使用してAndroid携帯に接続します。

lftp  192.168.31.130:3721
lftp 192.168.31.130:~> lcd Downloads
lcd ok, local cwd=/home/debian/Downloads
lftp 192.168.31.130:~> !ls
DroidEdit_v1.23.6.apk

lftpコマンドでパイプを使用できないのはなぜですか?

lftp 192.168.31.130:/> !ls | !grep  apk
bash: line 1: !grep: command not found

答え1

管路できる!(シェル)lftpコマンドで使用:

$ lftp localhost
lftp localhost:~> !ls | grep rpm
rpmbuild
lftp localhost:~>

$SHELLlftpはあなたのコマンドをbashに渡しますbash -c 'ls | !grep apk'。これはbashがあることを意味します。非対話型モード、その意味は履歴拡張が無効になっています。。その結果、bashは文字通り名前付きコマンドを見つけようとしましたが、!grep失敗します。

lftpはすべての後続のテキストを!シェルにパイプするため、!パイプラインの各コマンドに対してlftpのシェルプレフィックスを呼び出す必要はありません。ただ使用してください:!ls | grep apkまたは次のように助けゴティコメントを次のように単純化します!ls -d -- *apk*

関連情報