リモートシステムに接続してから情報を取得し、パイプを介してwhile
ループする必要があります。
ssh [email protected] "find ~/listfile/ -iname \"*log*\" |while read line; do cat $line; done"
上記のコマンドは空行を印刷します。コマンドを直接確認してみましたが、find
正常に動作し、ファイルのリストが表示されます。
ssh [email protected] "find ~/listfile/ -iname \"*log*\""
見つかったファイルの内容をどのように表示できますか?
ベストアンサー1
find
リモートサーバーで一致する名前のファイルを一覧表示してifファイルを追加する場合は、単独で使用する必要があります-type f
。
ssh USER@HOST 'find ~/listfile/ -type f -iname "*log*" '
cat
ファイルの内容を見つけるには、次find
のように使用しますcat
。
ssh USER@HOST 'find ~/listfile/ -type f -iname "*log*" -exec cat {} +'
あなたの特定の問題は$line
二重引用符で囲まれているため、ローカルシェル拡張によって引き起こされます。しかし、とにかくあなたのアプローチはfind
結果を繰り返す間違った方法です。バラより検索結果を繰り返すのはなぜ悪い習慣ですか?もっと学ぶ。