Rozważmy następujące polecenie:Ignoruj pusty wynik dla xargs
ls /mydir/*.txt | xargs chown root
zamiarem jest zmienić właściciele wszystkich plików tekstowych w mydir
wykorzenić
Kwestia jest taka, że jeśli nie ma .txt
pliki w mydir
następnie xargs pokazuje błąd informujący, że nie podano żadnej ścieżki. Jest to nieszkodliwy przykład, ponieważ zgłaszany jest błąd, ale w niektórych przypadkach, podobnie jak w skrypcie, którego potrzebuję tutaj użyć, zakłada się pustą ścieżkę do bieżącego katalogu. Więc jeśli uruchomię tę komendę z /home/tom/
, jeśli nie ma wyniku dla ls /mydir/*.txt
, a wszystkie pliki pod /home/tom/
mają ich właścicieli zmienionych na root.
Więc w jaki sposób mogę mieć xargs ignorować pusty wynik?
bok: Nigdy wyjście rury z 'ls' dla programowej użytkowania; zobacz http://mywiki.wooledge.org/ParsingLs –