GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu –引数リストが長すぎますか?

非常に大きな引数(サイズ1 MB)でコマンドを入力しようとしていますが、「引数リストが長すぎます」と表示されます。どうすればその引数を入力できますか?

OS:Linux Ubuntu

承認された回答:

実行可能ファイルがカーネルのARG_MAXより大きい場合、実行可能ファイル間で引数を渡す方法はありません。 制限。

リストがある場合 長すぎる引数は、それをより小さな部分に分割することができます。 xargsを使用 。これにより、必要な回数だけコマンドが実行され、必要な数の引数が提供されます。

構文はxargs command <fileです。 。 commandを省略した場合 、echoのように引数を表示します 。

デモとして

xargs -n 4 </etc/motd

最初の4つのトークンを1行に出力し(最初の呼び出し)、次の4つのトークンを別の行に出力します(-n 引数は引数の最大数を設定するため、これはARG_MAXを使用しません 制限します。)

実行したいコマンドに望ましくない副作用がある場合、これは機能しない可能性があります。たとえば、commandの場合 既存の./a.outを上書きします ファイルを作成すると、終了後の最後の実行の結果が明らかに残ります。

commandを構成または変更できる場合 そのため、コマンドライン引数の代わりにファイルまたは標準入力を読み取り、制限を回避します。ファイルまたはストリームは、ARG_MAXよりもはるかに大きくなる可能性があります 、そしてしばしばそうです。


Ubuntu
  1. Ubuntu Runuserコマンド?

  2. bash:/bin/tar:tar で多数のファイルを圧縮すると、引数リストが長すぎます

  3. ps:コマンド全体が長すぎます

  1. Ubuntuシステムのすべてのユーザーを一覧表示するユーザーフレンドリーなコマンド?

  2. 「引数リストが長すぎます」というエラーでディレクトリからファイルを削除できない

  3. rm、cp、mv コマンドの引数リストが長すぎるというエラー

  1. Ubuntu 20.04:トレントクライアントのリスト

  2. Ubuntu20.04にインストールされているパッケージを一覧表示する方法

  3. 断続的な OSError:[Errno 7] 引数リストが短いコマンドで長すぎます (~125 文字)