Considere este comando:Ignorar resultado vacío para xargs
ls /mydir/*.txt | xargs chown root
La intención es cambiar propietarios de todos los archivos de texto en mydir
para erradicar
La cuestión es que si no hay .txt
archivos en mydir
entonces xargs lanza un error que dice que no hay una ruta especificada. Este es un ejemplo inofensivo porque se lanza un error, pero en algunos casos, como en el script que necesito usar aquí, se supone que una ruta en blanco es el directorio actual. Entonces, si ejecuto ese comando desde /home/tom/
, si no hay ningún resultado para ls /mydir/*.txt
y todos los archivos en /home/tom/
tienen sus dueños cambiados a raíz.
Entonces, ¿cómo puedo hacer que xargs ignore un resultado vacío?
Aparte: Nunca salida de la tubería de 'ls' para uso programático; vea http://mywiki.wooledge.org/ParsingLs –