Не делает простого пути работа:
sed -r 's/ {4}/ /g'
В противном случае отправьте некоторый вход, где он перестал работать.
В этом случае type
не имеет никакого отношения к встроенному удару type
, но больше на этом позже.
Встроенный Bash type
команда дает Вам информацию о командах. Таким образом:
$ type type
type is a shell builtin
Синтаксис:
type [-tap] [name ...]
-t
: распечатайте только тип, если найдено-a
: распечатайте все случаи команды, и встроенной и другой.-p
: распечатайте дисковый файл, который был бы выполнен по требованию для управления, или ничто.Если мы смотрим на time
, kill
и cat
как пример:
$ 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
Теперь, это указывает это, если Вы находитесь в оболочке Bash и типе time some_cmd
, встроенный удар time
используется. Использовать систему time
можно сделать /usr/bin/time some_cmd
.
Один путь часто раньше гарантировал, что система, и не встроенная, команда используется, при помощи which
.
tt=$(which time)
и затем используйте $tt
назвать систему time
.
В этом случае -type
опция к команде find
. Опция берет один аргумент, которым указывают тип объекта. Пример
find . -type f # File
find . -type d # Directory
Существуют больше, проверяют man find
для остальных.
Для поиска определенной опции, можно сделать (пока в человеке):
/^\s*-typeEnter
Затем используйте n
для затем, пока Вы не находите его.
Это - определенная персональная интерпретация.
Некоторыми вещами, которые стоит упомянуть, в этом конкретном случае, являются команды, опции, аргументы и каналы.
Это несколько свободно используется, но в моем словаре мы имеем короче говоря:
В команде квадратные скобки спецификации используются для определения опций и, дополнительно меньше/больше затем, используются для определения аргументов. Таким образом:
foo [-abs] [-t <bar>] <file> ...
foo [-abs] [-t bar] file ...
Дает -a
-b
и -s
как дополнительные параметры, и file
необходимый. -t
является дополнительным, но, если указано берет обязательный аргумент bar
. Точки представляют это, может потребоваться несколько файлов.
Это не точная спецификация, и часто man
или help
требуется, чтобы быть уверенным.
Расположение опций аргументов и входа может часто перепутываться, но обычно лучше придерживаться основанного на положении подхода, поскольку некоторые системы не обрабатывают смешанное расположение аргументов. Как пример:
chmod -R nick 722 foo
chmod nick 722 foo -R
Обе работы над некоторыми системами, пока последний не делает на другом.
В Вашей точной команде все параметры принадлежит find
– таким образом, если Вы задаетесь вопросом о свойстве man find
корректное место должно посмотреть. В случаях, где необходимо посмотреть на страницы справочника для оболочки и т.д., мог быть в, например:
find . $(some command)
find . `some command`
find . $some_var
find . -type f -exec some_command {} \;
find . -type f | some_command
...
-exec
специальный где -exec some_command {} \;
все параметры, данные find
, но some_command {} \;
часть расширена, в find
кому: some_command string_of_found_entity
.
Вы shoul заглядываете man find
, не в help type
или man bash
. type
в find
укажет, в каком типе файла Вы нуждаетесь:
-type c
File is of type c:
b block (buffered) special
c character (unbuffered) special
d directory
p named pipe (FIFO)
f regular file
l symbolic link; this is never true if the -L option or the
-follow option is in effect, unless the symbolic link is
broken. If you want to search for symbolic links when -L
is in effect, use -xtype.
s socket
D door (Solaris)
И встроенный type
совершенно другая вещь, и это не то, используется внутри find
.
Вы обратились к неправильной странице руководства, это не type -f
команда, но find -type f
опция, которая очень отличается, взглянула к find
руководство для надлежащих объяснений.
-type f
говорит находят, чтобы только распечатать файлы типа f т.е. простые файлы, не каталоги, не символьные ссылки и не файлы устройств. man find
затем поиск -f
опция.
Это не правильная страница руководства, на которую Вы смотрите. Необходимо использовать
man find
это скажет Вам это с -type f
-type
предикат выбирает только регулярные файлы.