Dans ce cas, cela type
n'a rien à voir avec le bash intégré type
, mais plus à ce sujet plus tard.
Un peu de "type"
La type
commande intégrée BASH vous donne des informations sur les commandes. Donc:
$ type type
type is a shell builtin
La syntaxe est:
type [-tap] [name ...]
-t
: imprimer uniquement le type, s'il est trouvé
-a
: affiche toutes les occurrences de la commande, intégrées et autres.
-p
: imprime le fichier disque qui serait exécuté sur appel à la commande, ou rien.
Si nous regardons time
, kill
et à cat
titre d'exemple:
$ 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
Maintenant, cela spécifie que si vous êtes dans un shell et un type Bash time some_cmd
, le code bash time
est utilisé. Pour utiliser le système, time
vous pouvez le faire /usr/bin/time some_cmd
.
Une façon souvent utilisée pour s'assurer que la commande système, et non intégrée, est utilisée est d'utiliser which
.
tt=$(which time)
puis utilisez $tt
pour appeler le système time
.
La commande en question
Dans ce cas, -type
c'est une option de la commande find
. L'option prend un argument par lequel spécifier le type d'entité. Exemple
find . -type f # File
find . -type d # Directory
Il y a plus, vérifiez man find
le reste.
Pour rechercher l'option spécifique que vous pouvez faire (en étant chez l'homme):
/ ^ \ s * -typeEnter
Ensuite, utilisez n
pour le prochain jusqu'à ce que vous le trouviez.
Un peu sur la commande shell
C'est un peu une interprétation personnelle.
Certaines des choses qui méritent d'être mentionnées, dans ce cas spécifique, sont les commandes, les options, les arguments et les canaux.
C'est un peu vaguement utilisé, mais dans mon vocabulaire, nous avons en bref:
- commande: un programme ou intégré .
- paramètre: une entité après le mot de commande.
- option: un paramètre facultatif .
- argument: un paramètre obligatoire.
Dans une spécification de commande, les crochets sont utilisés pour spécifier les options et, éventuellement moins / plus grands ensuite, pour spécifier les arguments. Donc:
foo [-abs] [-t <bar>] <file> ...
foo [-abs] [-t bar] file ...
Donne -a
-b
et en -s
tant que paramètres facultatifs, et file
requis.
-t
est facultatif, mais s'il est spécifié, prend l'argument requis bar
. Les points indiquent qu'il peut prendre plusieurs fichiers.
Ce n'est pas une spécification exacte, et souvent man
ou help
est nécessaire pour être sûr.
Le positionnement des options d'arguments et la saisie peuvent souvent être mélangés, mais il est généralement préférable de conserver une approche basée sur la position car certains systèmes ne gèrent pas le positionnement mixte des arguments. Par exemple:
chmod -R nick 722 foo
chmod nick 722 foo -R
Les deux fonctionnent sur certains systèmes, tandis que ce dernier ne fonctionne pas sur d'autres.
Dans votre commande exacte, tous les paramètres appartiennent à find
- donc si vous vous interrogez sur une propriété, man find
c'est le bon endroit à regarder. Dans les cas où vous devez consulter les pages de manuel du shell, etc., par exemple:
find . $(some command)
find . `some command`
find . $some_var
find . -type f -exec some_command {} \;
find . -type f | some_command
...
Le -exec
est un -exec some_command {} \;
paramètre spécial où tous les paramètres sont attribués à find
, mais la some_command {} \;
partie est développée, à l'intérieur find
de some_command string_of_found_entity
.
Plus loin
- citer
- expansion
- substitution de commande
- et bien plus
Vous pourriez trouver cela utile .
type
commande intégrée n'est pas utilisée parfind
. L'-type
option de fairefind
autre chose. Voirhelp type
etman find
obtenir vos réponses.