Bash 스크립트에서 내가 찾은 명령을 발견했습니다.
find /var/log/abcd -type f
위 명령은 로그 파일 정리와 관련이 있습니다. 나는 무엇을 알고 find
있습니다.
를 본 후 -type f
매뉴얼 페이지를 보았습니다. BASH_BUILTINS (1) 의 맨 페이지에서 볼 수 있습니다.
type
명령 에서 -f 플래그에 대한 설명 은 다음과 같습니다.
The -f option suppresses shell function lookup, as with the command builtin.
다음은 내 질문입니다.
- 사용은
type
무엇입니까? -f
깃발 의 의미는 무엇입니까 ?type
withfind
명령 을 사용하는 것은 무엇입니까 ?
[편집] :- 지금까지 모든 의견과 답변을 읽은 후 -type option in command find
Vs의 잘못된 해석의 원인에 대해 언급하고 싶습니다 type command
. 이것은 모든 내가 가정했기 때문에 일어난 날짜까지 단지 짧은 옵션 (의 경우에는 시험 본 find
A를 명령) – 단일 마이너스 기호 ” , 예 ls -l
. 대부분의 경우 이중 빼기 기호 ‘-‘ 가있는 긴 옵션을 보았습니다 ( 예 🙂ls --version
.
답변
이 경우 type
bash built-in과는 아무런 관련 이 type
없지만 나중에 더 자세히 설명합니다.
“타입” 에 대해 조금
BASH 내장 type
명령은 명령에 대한 정보를 제공합니다. 그러므로:
$ type type
type is a shell builtin
구문은 다음과 같습니다.
type [-tap] [name ...]
-t
: 발견 된 경우에만 인쇄 유형-a
: 내장 및 기타 명령의 모든 발생을 인쇄합니다.-p
: call to command에서 실행될 디스크 파일을 인쇄합니다.
우리가 보면 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
하면 bash 내장 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 *-타입Enter
그런 다음 사용 n
을 위해 다음 당신이 그것을 찾을 때까지.
쉘 명령에 대해 조금
이것은 약간의 개인적인 해석입니다.
이 특별한 경우 언급 할 가치가있는 것은 명령, 옵션, 인수 및 파이프입니다.
이것은 다소 느슨하게 사용되지만 내 어휘에는 짧게 있습니다.
- 명령 : 프로그램 또는 내장 .
- 매개 변수 : 명령 단어 뒤의 엔티티.
- 옵션 : 선택적 매개 변수.
- 인수 : 필수 매개 변수.
명령 스펙에서 대괄호는 옵션을 지정하는 데 사용되며 선택적으로 인수를 지정하는 데 사용됩니다. 그러므로:
foo [-abs] [-t <bar>] <file> ...
foo [-abs] [-t bar] file ...
부여 -a
-b
와 -s
같은 선택적인 매개 변수, file
a는 일이 필요합니다.
-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
.
더 나아가
- 인용
- 확장
- 명령 대체
- 그리고 훨씬 더
답변
당신 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
디렉토리에있는 파일이 아닌 일반 파일, 즉 심볼릭 링크가 아닌 장치 파일이 아닌 파일 만 인쇄하도록 find에 지시합니다. man find
그런 다음 -f
옵션 을 검색하십시오 .
답변
귀하가보고 계신 올바른 매뉴얼 페이지가 아닙니다. 당신은 사용해야합니다
man find
그 것을 당신을 말할 것이다 술어만을 선택 일반 파일.-type f
-type