Considerate questo comando:Ignora risultato vuoto per xargs
ls /mydir/*.txt | xargs chown root
L'intento è quello di cambiare i proprietari di tutti i file di testo in mydir
di radicare
Il problema è che se non ci sono file .txt
in mydir
poi xargs genera un errore nel dire che non è specificato alcun percorso. Questo è un esempio innocuo perché viene generato un errore, ma in alcuni casi, come nello script che ho bisogno di usare qui, si presume che un percorso vuoto sia la directory corrente. Quindi, se eseguo questo comando da /home/tom/
, se non ci sono risultati per ls /mydir/*.txt
e tutti i file sotto /home/tom/
hanno i loro proprietari modificati in root.
Quindi, come posso ignorare un risultato vuoto in xargs?
parte: Mai uscita tubo dal 'ls' per l'utilizzo programmatico; vedi http://mywiki.wooledge.org/ParsingLs –