Я наткнулся на команду в скрипте Bash, в которой я нашел:
find /var/log/abcd -type f
Вышеупомянутая команда была в контексте очистки файлов журнала. Я знаю , что find
делает.
После того , как увидел -type f
, я просмотрел страницу руководства для него. Я увидел это на странице руководства BASH_BUILTINS (1)
Описание флага -f под type
командой: -
The -f option suppresses shell function lookup, as with the command builtin.
Ниже приведены мои вопросы:
- Какая польза от
type
? - Какое значение
-f
флага? - Какая польза от использования
type
сfind
командой?
[EDIT]: - После того , как прочитал все комментарии и ответы до сих пор, я хотел бы упомянуть причину моего неправильного толкования -type option in command find
Vs type command
. Все это произошло потому, что я предполагал, что до даты видел только короткие варианты (тесты в случае find
команды) с одним знаком минус «-» , например ls -l
,. В большинстве случаев я видел длинные варианты с двойным знаком минус «-» , например ls --version
,.
источник
type
Команда встроенный не используетсяfind
.-type
Вариантfind
делает что - то еще. Смотритеhelp type
иman find
получите ваши ответы.Ответы:
В этом случае не
type
имеет ничего общего со встроенным bashtype
, но об этом позже.Немного о "типе"
Встроенная
type
команда BASH предоставляет вам информацию о командах. Таким образом:Синтаксис:
-t
: печатать только тип, если найден-a
: печатать все вхождения команды, как встроенные, так и другие.-p
: распечатать файл на диске, который будет выполнен при вызове команды, или ничего.Если мы посмотрим
time
,kill
иcat
в качестве примера:Теперь это указывает, что если вы находитесь в оболочке Bash и вводите
time some_cmd
, используется встроенная команда bashtime
. Для использования системыtime
вы можете сделать/usr/bin/time some_cmd
.Одним из способов, который часто используется для обеспечения использования системной, а не встроенной команды, является использование
which
.а затем использовать
$tt
для вызова системыtime
.Команда, о которой идет речь
В этом случае
-type
это опция командыfind
. Опция принимает один аргумент, по которому указывается тип объекта. примерЕсть еще, проверьте
man find
на остальное.Для поиска конкретной опции вы можете сделать (пока в человеке):
Затем используйте
n
для следующего, пока не найдете его.Немного о командной оболочке
Это немного личной интерпретации.
В данном конкретном случае стоит упомянуть некоторые команды, опции, аргументы и каналы.
Это несколько свободно используется, но в моем словарном запасе мы имеем вкратце:
В спецификации команды квадратные скобки используются для указания параметров и, по выбору, меньше / больше, чем используются для указания аргументов. Таким образом:
Выдает
-a
-b
и-s
как необязательные параметры, так иfile
обязательный.-t
необязательно, но если указано, принимает обязательный аргументbar
. Точки показывают, что это может занять несколько файлов.Это не точная спецификация, и часто
man
илиhelp
требуется, чтобы быть уверенным.Позиционирование параметров аргументов и ввод часто могут быть смешаны, но обычно лучше придерживаться позиционного подхода, поскольку некоторые системы не обрабатывают смешанное позиционирование аргументов. В качестве примера:
Оба работают на некоторых системах, в то время как последние не работают на других.
В вашей точной команде все параметры принадлежат
find
- таким образом, если вам интересно, какое свойствоman find
является правильным местом для поиска. В тех случаях, когда вам нужно просмотреть справочные страницы по оболочке и т. Д., Например:-exec
Является особенным , где-exec some_command {} \;
все параметры , данныеfind
, ноsome_command {} \;
часть расширена, в пределахfind
доsome_command string_of_found_entity
.Далее
Вы можете найти это полезным .
источник
Вы должны смотреть
man find
, а не вhelp type
илиman bash
.type
вfind
укажите, какой тип файла вам нужен:И встроенный
type
- это совсем другое, и это НЕ тот, который используется внутриfind
.источник
Вы обратились не к той странице справочника, это не
type -f
команда, аfind -type f
опция, которая совершенно иная, обратитесь кfind
руководству за правильными объяснениями.источник
-type f
указывает find только печатать файлы типа f, то есть обычные файлы, а не каталоги, не символические ссылки и не файлы устройств.man find
тогда ищите-f
вариант.источник
Это не та страница справочника, на которую вы смотрите. Вы должны использовать
это скажет вам, что с
-type f
помощью-type
предиката выбираются только обычные файлы.источник