Recentemente ho copiato e spostato un gran numero di file (~ 400.000). So che ci sono limitazioni sul numero di argomenti che possono essere espansi sulla riga di comando di Bash, quindi ho usato xargs per limitare i numeri prodotti.Numero massimo di argomenti Bash! = Max argomenti num cp?
Per curiosità, mi sono chiesto quale fosse il numero massimo di argomenti che potrei usare, e ho trovato this post dicendo che era dipendente dal sistema, e che avrei potuto eseguire questo comando per scoprire:
$ getconf ARG_MAX
Con mia grande sorpresa, l'anwser sono tornato era:
2621440
Poco più di 2,6 milioni di . Come ho detto, il numero di file che sto manipolando è molto inferiore a questo - circa 400k. Devo assolutamente utilizzare il metodo xargs
per spostare e copiare questi file, perché ho provato a utilizzare un normale mv * ...
oe ho ricevuto un errore "Argument list too long".
Quindi, i comandi mv
e cp
hanno il loro limite fisso sul numero di argomenti che è possibile utilizzare (non sono riuscito a trovare nulla nelle loro pagine man) o mi manca qualcosa?
Perché è necessario specificare ogni file? Non puoi semplicemente specificare la directory in cui si trovano o qualcosa del genere? –
@Christoffer Non sto solo copiando una directory da un posto a un altro, sto copiando file specifici, rinominando un sacco di file, spostando determinati file da un posto a un altro. Non ho alcun problema nell'eseguire effettivamente queste operazioni. Ero solo curioso di sapere quali fossero i limiti specifici dei comandi 'cp' e' mv'. –