Rozważ to polecenie:
ls /mydir/*.txt | xargs chown root
Intencją jest zmiana właścicieli wszystkich plików tekstowych mydirna root
Problem polega na tym, że jeśli nie ma żadnych .txtplików, mydirxargs wyświetla błąd informujący, że nie określono ścieżki. Jest to nieszkodliwy przykład, ponieważ generowany jest błąd, ale w niektórych przypadkach, na przykład w skrypcie, którego muszę tutaj użyć, przyjmuje się, że bieżącym katalogiem jest pusta ścieżka. Więc jeśli uruchomię to polecenie /home/tom/odtąd, jeśli nie będzie wyników dla, ls /mydir/*.txta wszystkie pliki w katalogu /home/tom/mają swoich właścicieli zmienionych na root.
Więc jak mogę xargs zignorować pusty wynik?
git branch --merged | grep -v '^* ' | xargs git branch -d, który również nie działa przy pustych danych wejściowych
lsdo celów programowych; patrz mywiki.wooledge.org/ParsingLs