In Unix,Was ist das "-" in diesem Befehl xargs Befehl
ls -t | tail -n +4 | xargs rm --
ls -t | tail -n +4 | xargs rm
, was der Unterschied ist, bitte?
In Unix,Was ist das "-" in diesem Befehl xargs Befehl
ls -t | tail -n +4 | xargs rm --
ls -t | tail -n +4 | xargs rm
, was der Unterschied ist, bitte?
--
zeigt an, dass alle folgenden Parameter in der Befehlszeile behandelt werden als Operanden in diesem Befehl für „“ und nicht Optionen (auch wenn der Parameter mit -
oder --
beginnt).
So bedeutet ls -t | tail -n +4 | xargs rm --
, dass alle Parameter, die von xargs
bis rm
geliefert werden, als Dateinamen (d. H. Operanden) behandelt werden.
Und im ls -t | tail -n +4 | xargs rm
Fall, wenn es geschieht mit einem Dateinamen im aktuellen Verzeichnis mit -
oder --
starten, rm
werden versuchen, es als Option zu interpretieren (und unerwartete Ergebnisse sind mehr als wahrscheinlich).
Was ist das - Befehl xargs
Die --
Mittel „schaltet Ende hier“
... und es ist nicht verwandt mit 'xargs', es wird von' xargs' an 'rm' übergeben und' rm' (oder besser die 'getopt' Bibliothek, die für die Analyse von Argumenten verwendet wird), stoppt die Verarbeitung der Option (und ignoriert sie). Nicht alle 'rm' könnten das tatsächlich tun, aber es ist eine Posix-Empfehlung. Siehe zum Beispiel Dokument hier: http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html – eckes
'-' bedeutet das Ende der Optionsflags. Ich weiß nur von meiner Frage hier: http://askubuntu.com/questions/419137/how-can-i-remove-a-file-that-looks-like-a-flag. Kann sein, warum es in Ihrem verwendet wird Beispiel – dan08
Der Unterschied wird am deutlichsten in einem Verzeichnis, das eine Datei namens '-rf' und einige weitere Verzeichnisse enthält. – Jens