AWS CLI のコマンド結果が途中までしか表示されないときの対処方法

2023.03.17

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

AWS CLI で結果が長いコマンドを実行すると、途中の結果までしか表示されません。
以前は同じコマンドで全て表示されていたのですが、すべて表示する方法を教えてください。

$ aws s3api list-objects \
      --bucket aws-cloudtrail-logs-123456789
{
    "Contents": [
        {
            "Key": "AWSLogs/123456789/CloudTrail/",
            "LastModified": "2000-01-02T03:04:05+00:00",
            "ETag": "\"123456789123456789123456789\"",
            "Size": 0,
            "StorageClass": "STANDARD",
            "Owner": {
:   # 結果の途中で表示が停止する

どう対応すればいいの?

コマンドに--no-cli-pagerオプションを追加してください。

コマンド例

$ aws s3api list-objects \
      --bucket aws-cloudtrail-logs-123456789 \
      --no-cli-pager

AWS CLI のバージョン 2 からクライアント側のページャーがデフォルトで有効になり、コマンド結果が長くなる場合は、分割して表示されます。

ページャーの使用は--no-cli-pagerオプションで該当のコマンド実行に限り一時的に無効にできるほか、環境変数やConfigで半永久的に無効にできます。環境変数やConfigによる設定は次のブログを確認してください。

なお、ページャーとして Linux もしくは macOS の場合はless、Windows の場合はmoreがデフォルトで使用されます。

参考資料

クライアント側のページャー

AWS CLI バージョン 2 では、出力にクライアント側のページャープログラムを使用できます。デフォルトでは、この機能がオンになり、オペレーティングシステムのデフォルトのページャープログラムを介してすべての出力を返します。