Ich habe kürzlich den /bin
Ordner meines Fedora durchsucht und eine Binärdatei mit dem Namen entdeckt [
. Ich habe versucht, im Internet nach weiteren Informationen zu suchen, aber ich konnte nichts Nützliches finden. Das Durchgehen strace
scheint auch bei näherer Betrachtung nichts Nützliches hervorzubringen.
Was ist das? Soll ich alarmiert sein? Könnte es das Ergebnis eines Systemkompromisses sein? Soll ich es laufen lassen? Gehört es zu einem Paket?
[ -f /bin/[ ] && printf "%s\n" "Don't panic"
man [
zu sehen, was der[
Befehl ist!bash
gedacht, dass das etwas anderes sein könnte. Es ist nicht das Erste, woran Sie denken, wenn Sie eine Binärdatei mit einem Namen sehen, den Sie noch nie zuvor in Ihrem Dateisystem gesehen haben .rpm -qif /bin/[
Sie heraus, woher es kommt ...Antworten:
Die
[
Binärdatei, die sich/bin
in vielen GNU / Linux-Distributionen unter dem Baum befindet, ist nicht alarmierend. Zumindest in meinem Fedora 19 ist es ein Teil des Coreutils-Pakets, wie unten gezeigt:und ist ein Synonym für
test
, damit Ausdrücke[ expression ]
in Shell-Skripten oder sogar interaktiv geschrieben werden können.quelle
bash
ein eingebautestest
und[
nicht das externe Binärprogramm aufrufen.[
diese Spezifikation ist ein Testbefehl erforderlich.[
Befehl. Nicht-Bourne-artige mögen(t)csh
,rc
imes
Allgemeinen nicht (fish
ist dort eine Ausnahme).Der
[
Befehl ist der gleiche wie dertest
Befehl.Es erlaubt Ihnen, ziemlich knappe bedingte Anweisungen in Shell-Skripten zu schreiben. Auf der SunOS-Handbuchseite:
Wenn Sie es entfernen, brechen Skripte!
quelle
[
eingebauten Befehl haben, brechen ab. Die meisten Muscheln tun es. Trotzdem würde ich das Entfernen auf keinen Fall empfehlen/bin/[
.[
eingebaute Skripte, deren Ausführung von Nicht-Shell-Anwendungen unterbrochen[
wird. Gefälltfind ... -exec [ -f {} ] \;
env LC_ALL=C [ -f bar ]
[
springende Punkt.) Ich glaube nicht, dass ich eine von sh abgeleitete Shell gesehen habe, die nicht als eingebautes Element vorhanden ist, aber glaube nicht, dass[
sie im Original eingebaut ist Borowski-Schale. Entfernen/bin/[
wäre auf jeden Fall eine schlechte Idee.test
und[
sind fast gleich.[
erfordert einen Abschluss]
;test
erlaubt es nicht (oder behandelt ein Argument von eher nicht]
besonders).Das [wird immer als Äquivalent zu test angegeben, aber ich hatte das] nicht explizit gesehen, obwohl es immer da ist. Ich habe dies gerade in http://ss64.com/bash/test.html gefunden :
das ist beruhigend - endlich habe ich die Vollendung, wie sie sagen.
quelle