GNU/Linux >> Znalost Linux >  >> Ubuntu

Ubuntu – seznam argumentů je příliš dlouhý?

Snažím se zadat příkaz s VELMI velkým argumentem (velikost 1 MB), ale říká „Seznam argumentů je příliš dlouhý“. Jak mohu zadat tento argument?

OS:Linux Ubuntu

Přijatá odpověď:

Neexistuje způsob, jak předat argument mezi spustitelné soubory, pokud je větší než ARG_MAX jádra limit.

Pokud máte seznam argumenty, které jsou příliš dlouhé, lze je rozdělit na menší části, např. s xargs . Toto spustí příkaz tolikrát, kolikrát je potřeba, a poskytne tolik argumentů, kolik se vejde.

Syntaxe je xargs command <file . Pokud vynecháte command , zobrazí své argumenty, například echo .

Jako demo,

xargs -n 4 </etc/motd

vytiskne první čtyři tokeny na jeden řádek (první vyvolání), další čtyři na další atd. (-n argument nastavuje maximální počet argumentů, takže se nepoužívá ARG_MAX limit vůbec.)

Pokud má příkaz, který chcete spustit, nežádoucí účinky, nemusí to fungovat. Například pokud command přepíše všechny dříve existující ./a.out po jeho dokončení vám zjevně zůstanou pouze výsledky z posledního spuštění.

Pokud můžete nakonfigurovat nebo upravit command takže místo argumentu příkazového řádku přečte soubor nebo standardní vstup, který omezení obejde. Soubor nebo stream může být mnohem větší než ARG_MAX a často je.


Ubuntu
  1. Nelze odebrat soubory z adresáře s chybou „Seznam argumentů je příliš dlouhý“

  2. bash:/bin/tar:Při komprimaci mnoha souborů pomocí tar je seznam argumentů příliš dlouhý

  3. ps:celý příkaz je příliš dlouhý

  1. Příkaz Ubuntu Runuser?

  2. Uživatelsky přívětivý příkaz k zobrazení seznamu všech uživatelů v systému Ubuntu?

  3. Chyba příliš dlouhého seznamu argumentů pro příkazy rm, cp, mv

  1. Ubuntu 20.04:Seznam torrent klientů

  2. Jak zobrazit seznam nainstalovaných balíčků na Ubuntu 20.04

  3. Intermittent OSError:[Errno 7] Příliš dlouhý seznam argumentů s krátkým příkazem (~125 znaků)