In diesem Fall type
hat das nichts mit der eingebauten Bash zu tun type
, aber dazu später mehr.
Ein bisschen über "Typ"
Mit dem integrierten type
Befehl BASH erhalten Sie Informationen zu Befehlen. Somit:
$ type type
type is a shell builtin
Die Syntax lautet:
type [-tap] [name ...]
-t
: Nur Typ drucken, falls gefunden
-a
: Gibt alle Vorkommen des Befehls aus, sowohl die eingebauten als auch die anderen.
-p
: druckt die Disk-Datei, die beim Aufruf des Befehls ausgeführt werden würde, oder nichts.
Wenn wir betrachten time
, kill
und cat
als Beispiel:
$ type time kill cat
time is a shell keyword
kill is a shell builtin
cat is /bin/cat
$ type -t time kill cat
keyword
builtin
file
$ type -a time kill cat
time is a shell keyword
time is /usr/bin/time
kill is a shell builtin
kill is /bin/kill
cat is /bin/cat
$ type -ta time kill cat
keyword
file
builtin
file
file
Nun geben Sie an, dass, wenn Sie sich in einer Bash-Shell befinden und tippen time some_cmd
, die integrierte Bash time
verwendet wird. Um das System zu benutzen, können time
Sie tun /usr/bin/time some_cmd
.
Eine häufig verwendete Methode, um sicherzustellen, dass der Systembefehl und nicht der integrierte Befehl verwendet wird, ist die Verwendung von which
.
tt=$(which time)
und dann verwenden $tt
, um das System aufzurufen time
.
Der fragliche Befehl
In diesem Fall -type
ist das eine Option zum Befehl find
. Die Option akzeptiert ein Argument, mit dem der Entitätstyp angegeben wird. Beispiel
find . -type f # File
find . -type d # Directory
Es gibt mehr, überprüfen Sie man find
den Rest.
So suchen Sie nach einer bestimmten Option, die Sie (während Sie im Mann sind) ausführen können:
/ ^ \ s * -TypEnter
Dann benutze n
für nächstes, bis du es findest.
Ein wenig über den Shell-Befehl
Dies ist eine persönliche Interpretation.
Einige der Dinge, die in diesem speziellen Fall erwähnenswert sind, sind Befehle, Optionen, Argumente und Pipes.
Dies wird etwas locker verwendet, aber in meinem Wortschatz haben wir kurz gesagt:
- Befehl: ein Programm oder eingebaut .
- Parameter: eine Entität nach dem Befehlswort.
- Option: Ein optionaler Parameter.
- Argument: Ein erforderlicher Parameter.
In einer Befehlsspezifikation werden eckige Klammern verwendet, um Optionen anzugeben, und optional weniger / mehr, um Argumente anzugeben. Somit:
foo [-abs] [-t <bar>] <file> ...
foo [-abs] [-t bar] file ...
Gibt -a
-b
und -s
als optionale Parameter an und file
einen erforderlichen.
-t
ist optional, verwendet aber, falls angegeben, das erforderliche Argument bar
. Punkte stehen dafür, dass es mehrere Dateien aufnehmen kann.
Dies ist keine genaue Spezifikation und wird häufig man
oder help
zur Sicherheit benötigt.
Optionen und Eingaben für die Positionierung von Argumenten können häufig verwechselt werden. Es ist jedoch im Allgemeinen am besten, einen positionsbasierten Ansatz beizubehalten, da einige Systeme die gemischte Positionierung von Argumenten nicht verarbeiten. Als Beispiel:
chmod -R nick 722 foo
chmod nick 722 foo -R
Beide funktionieren auf einigen Systemen, während letzteres auf anderen nicht funktioniert.
In Ihrem genauen Befehl gehören alle Parameter dazu find
- also, wenn Sie sich über eine Immobilie wundern, man find
ist der richtige Ort zu suchen. In Fällen, in denen Sie sich Manpages für die Shell usw. ansehen müssen, kann dies beispielsweise sein:
find . $(some command)
find . `some command`
find . $some_var
find . -type f -exec some_command {} \;
find . -type f | some_command
...
Das -exec
ist ein spezielles, bei dem -exec some_command {} \;
alle Parameter angegeben werden find
, der some_command {} \;
Teil jedoch innerhalb von find
to erweitert wird some_command string_of_found_entity
.
Weiter
- Zitat
- Erweiterung
- Befehlsersetzung
- und so viel mehr
Das könnte hilfreich sein .
type
eingebaute Befehl wird von nicht verwendetfind
. Die-type
Option,find
etwas anderes zu tun. Sehenhelp type
undman find
erhalten Sie Ihre Antworten.