내 친구는 -r 스위치를 사용하여 디렉터리와 하위 디렉터리에서 반복적으로 파일을 찾을 수 있다고 말했습니다. 주어진 명령문의 오류를 알려주십시오. 작동하지 않습니다.
find / -type f -r -name "abc.txt"
답변1
작동하지 않는 이유는 find에 -r
옵션이 없기 때문입니다. 많은 프로그램에서 이 플래그는 "재귀적"을 의미하지만 모든 프로그램에 해당되는 것은 -r
아니며 find
.find
아니요재귀적이길 바랍니다.
이 명령을 사용하여 대부분의 프로그램에 대한 옵션을 확인할 수 있습니다 man
. 예를 들어, man find
. find 매뉴얼이 방대하기 때문에 옵션을 찾으려면 매뉴얼을 검색해야 할 수도 있습니다 -r
.
$ man find | grep -w -- -r
-- grep에게 옵션 읽기를 중지하라고 지시합니다. 그렇지 않으면 -r이 옵션으로 grep에 전달됩니다. 또한 /
검색하려는 항목을 클릭하고 작성한 다음 입력하여 매뉴얼 페이지 내에서 검색할 수 있습니다 .
이 명령은 아무것도 반환하지 않습니다. 다음 설명서를 검색하는 명령과 비교해 보세요 cp
.
$ man cp | grep -w -- -r
-R, -r, --recursive
항상 재귀적이기 때문에 find
대신에 하위 디렉터리 수를 선택할 수 있는 플래그가 있습니다.
-maxdepth levels
Descend at most levels (a non-negative integer) levels of direc‐
tories below the command line arguments. -maxdepth 0
means only apply the tests and actions to the command line
arguments.
-mindepth levels
Do not apply any tests or actions at levels less than levels (a
non-negative integer). -mindepth 1 means process all files
except the command line arguments.
따라서 명령에 대한 질문이 있을 때마다 해당 man
페이지를 읽어 보십시오. 특정 옵션의 기능이 무엇인지 알 수 없기 때문입니다. 예를 들어:
$ man sort | grep -w -- -r
-r, --reverse
$ man mount | grep -w -- -r,
-r, --read-only
$ man awk | grep -A 8 -w -- -r
-r
--re-interval
Enable the use of interval expressions in regular expression
matching (see Regular Expressions, below). Interval expressions
were not traditionally available in the AWK language. The POSIX
standard added them, to make awk and egrep consistent with each
other. They are enabled by default, but this option remains for
use with --traditional.
$ man sed | grep -w -- -r
-r, --regexp-extended
$ man xterm | grep -w -- -r
-r This option indicates that reverse video should be simulated by
swapping the foreground and background colors.
당신은 이해했습니다.
답변2
find
이미 재귀적이므로 필요하지 않습니다.-r