셸에서 파일을 찾아 내용을 에코하세요.

셸에서 파일을 찾아 내용을 에코하세요.

디렉터리의 모든 파일을 이름으로 검색하고 파일 내용을 셸에 출력하려고 합니다.

현재는 파일 목록만 가져옵니다.

find -name '.htaccess' -type f


./dir1/.htaccess
./dir23/folder/.htaccess
...

하지만 내가 어떻게 할 수 있니?출력 내용파일별로 교체합니다. 이런 것을 생각해 보세요.파이프 파일 이름cat-명령.

답변1

술어 cat내에서 사용됨 :-execfind

find -name '.htaccess' -type f -exec cat {} +

그러면 파일의 내용이 차례로 출력됩니다.

답변2

find( ) 에 대한 매뉴얼 페이지를 참조하십시오 man find.

-exec utility [argument ...] ;
         True if the program named utility returns a zero value as its exit
status. Optional arguments may be passed to the utility. The expression must be
terminated by a semicolon (``;'').  If you invoke find from a shell you may need
to quote the semicolon if the shell would otherwise treat it as a control
operator. If the string ``{}'' appears anywhere in the utility name or the
arguments it is replaced by the pathname of the current file.  Utility will be
executed from the directory from which find was executed. Utility and arguments
are not subject to the further expansion of shell patterns and constructs.

-exec utility [argument ...] {} +
         Same as -exec, except that ``{}'' is replaced with as
many pathnames as possible for each invocation of utility.  This behaviour is
similar to that of xargs(1).

그러니 스위치를 켜기만 하면 됩니다 -exec.

find -type f -name '.htaccess' -exec cat {} +

답변3

사용하고 싶은 -exec옵션 find.

find -name some_pattern -type f -exec cat {} +

그리고 그것이 모두 일반 텍스트이고 하나씩 보고 싶다면 다음 cat으로 바꾸십시오 less(또는 viewvim에서).

find -name some_pattern -type f -exec less {} +

보고 편집하려면 vim또는 emacs또는 gedit(원하는 대로) 을 사용하십시오.

find -name some_pattern -type f -exec vim {} +

관련 정보