非常に大きな引数(サイズ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
よりもはるかに大きくなる可能性があります 、そしてしばしばそうです。
Linux –WindowsとLinuxMint /ubuntuのデュアルブートでのBluetoothペアリング–デバイスをペアリングする必要がなくなりますか?
Ubuntu –独自のディストリビューション(Linux)に表示されるシェルを作成する方法??