2012-06-17 5 views
0

다음은 무엇을 의미합니까?리눅스에서 명령어 찾기

find myDirectory -name myFile -exec ls \-ln {} \; 

나는 here을 보였다했지만 정확히

-exec command True if the executed command returns a zero value as exit status. The end of command must be punctuated by an escaped semicolon. A command argument {} is replaced by the current path name. 

이 부분 -exec ls \-ln {} \; 나에게 분명하지 이해하지 못했다.

감사

+2

오프 주제입니다. 그러나 적절한 man 페이지를 사용해보십시오. http://unixhelp.ed.ac.uk/CGI/man-cgi?find. 심지어 위키 백과 : http://en.wikipedia.org/wiki/Find_(Unix)#Execute_an_action. –

답변

5

의미 : myFile의 이름을 가진 모든 파일을 현재 디렉토리와 모든 하위 디렉토리 및 찾은 모든 파일에서 찾아 ls -ln 파일 이름으로 실행합니다. 예를 들어

:

$ mkdir a 
$ touch myFile a/myFile 
$ find -name myFile -exec ls -ln {} \; 
-rw-r--r-- 1 1000 1000 0 Jun 17 13:07 ./myFile 
-rw-r--r-- 1 1000 1000 0 Jun 17 13:07 ./a/myFile 

이 경우 find에서 두 번 ls를 실행합니다 :

ls -ln ./myFile 
ls -ln ./a/myFile 

때마다이 발견 된 파일의 전체 이름으로 {}을 확장됩니다.

또한이 경우에는 -ln 앞에 백 슬래시가 필요하다는 것을 추가해야합니다. 예, 사용할 수는 있지만 여기서는 전혀 쓸모가 없습니다.

3
find myDirectory -name myFile -exec ls \-ln {} \; 

이 디렉토리 myDirectorymyFile을 찾을 말한다 모든 파일이 발견되면 그 명령 옵션에있는 파일에 대한 -l-n와 LINIX ls에, 명령을 나열하는 파일을 실행합니다.

궁극적으로 myFilesls 명령 결과가 모두 표시됩니다.

+0

exec는 발견 된 모든 파일에 대해 명령을 실행합니다. – fvu

+0

@fvu가 아니라 단지 설명입니다 ... 나는 똑같은 의미입니다. – Rahul

+0

은 설명이 오해를 불러올 수 있다고 지적합니다. 편집을하면 훨씬 더 명확 해집니다. +1 – fvu

관련 문제