私のデスクトップ端末に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:~>
$SHELL
lftpはあなたのコマンドをbashに渡しますbash -c 'ls | !grep apk'
。これはbashがあることを意味します。非対話型モード、その意味は履歴拡張が無効になっています。。その結果、bashは文字通り名前付きコマンドを見つけようとしましたが、!grep
失敗します。
lftpはすべての後続のテキストを!
シェルにパイプするため、!
パイプラインの各コマンドに対してlftpのシェルプレフィックスを呼び出す必要はありません。ただ使用してください:!ls | grep apk
または次のように助けゴティコメントを次のように単純化します!ls -d -- *apk*
。