find를 사용하여 파일 찾기

출처 : http://docs.hp.com/ko/B2355-90167/ch02s18.html

(HP-UX 기준)


find 명령을 사용하여 특정 조건에 맞는 파일을 디렉토리와 그 하위 디렉토리에서 찾을 수 있습니다. 찾은 파일에서 명령을 수행할 수 있습니다.

패턴이 일치하는 파일 찾기

find구문이 복잡하기는 하지만, HP-UX를 더욱 생산적으로 사용할 수 있습니다. 강력하고 융통성있는 명령입니다. 그러나, 디렉토리가 많을 경우에는 느리게 실행될 수 있습니다.

현재 디렉토리와 하위 디렉토리에서 d로 시작하는 모든 파일을 찾으려면 다음을 입력하십시오.

find(1)

$ find . -name 'd*'

점(.)은 find 가 현재 디렉토리와 하위 디렉토리를 찾도록 합니다. -name 선택사항 뒤에는 파일 이름이나 파일 이름 패턴(이 경우에는 d*)이 오는데, 패턴이 일치하는 모든 파일의 이름을 찾습니다. 이 보기에서 find는 d로 시작하는 모든 파일 이름을 찾습니다.

d*는 작은 따옴표 'd*'로 묶습니다 . find 명령에서 파일 이름 패턴을 사용할 경우에는 쉘이 정확하게 해석할 수 있도록 따옴표로 묶어야 합니다.

특정 파일보다 새로운 파일 찾기

특정 파일 이후에 수정된 모든 파일을 찾는다고 가정합시다. /home/leslie디렉토리와 그 하위 디렉토리에 있는 myfile보다 새로운 파일을 나타내려면, 다음을 입력하십시오.

$ find /home/leslie -newer myfile

이 보기는 /home/Lee 디렉토리와 그 하위 디렉토리에서 myfile이후에 수정된 모든 파일을 찾아서 화면에 모두 출력하라는 의미입니다. (파일이 마지막으로 수정된 일자와 시간을 알려면, ll명령을 사용하십시오.)

파일에서 명령 수행

find 명령을 받는 파일에서 다른 명령을 수행할 수 있습니다. 현재 디렉토리와 하위 디렉토리에서.tmp라는 확장 이름을 가진 모든 파일을 삭제하려면, 다음을 입력하십시오.

$ find . -name '*.tmp' -exec rm {} \;

현재 디렉토리와 하위 디렉토리에서 .tmp로 끝나는 모든 파일을 찾아서 화면에 나타내고 그 파일을 모두 삭제합니다. -exec 선택사항은 다음 명령 (rm)을 실행합니다. { } 는 find 명령이 찾은 파일을 의미합니다. 명령 문자열을 끝내는 세미콜론 (;) 앞에 
ESC 문자로 역빗금(\)을 붙입니다.

논리 연산자 사용

find 구문에 NOT, AND, OR같은 논리 연산자를 사용할 수 있습니다.

특정 형식에 일치하지 않는 파일을 찾으려면, 논리 연산자 NOT을 나타내는 !선택사항을 사용하십시오. 이 선택사항 뒤에는 파일 이름과 같이 파일 속성을 정의하는 선택사항을 사용하여야 합니다. 그러면, 지정된 속성이 없는 파일을 찾습니다.

예를 들면, /tmp에서 leslie에 없는 모든 파일을 찾으려면, 다음 명령을 사용합니다.

$ find /tmp \( ! -user leslie \)

쉘이 괄호를 특수 문자로 해석하지 않도록 ESC 문자인 \을 앞에 붙입니다.

두 개의 속성이 있는 파일을 찾으려면, 논리 연산자 AND인 expression -a 
expression 
선택사항을 사용하십시오. 예를 들어, /에서 Lee에 있는 모든 디렉토리를 찾으려면 다음 명령을 사용합니다.

$ find / \( -type d -a -user Lee \)

둘 중에서 한 개의 속성이 있는 파일을 찾으려면, 논리 연산자 OR인 expression -o expression 선택사항을 사용하십시오. 예를 들어, 일주일 동안 사용하지 않은 a.out이나 .o인 파일을 삭제하려면 다음 명령을 사용하십시오.

$find / \(-name a.out -o -name '*.o' \)-atime +7 -exec rm {}\;


Eclipse plugins


Copy Fully Qualified Class Name Plugin : 클래스의 전체 이름을 복사해 줌




Eclipse 처음 실행시 오류

이클립스를 받아서 처음 실행을 하면 "JVM terminated. Exit code=-1" 등의 메세지와 함께 실행이 되지 않는 경우가 있다. 시작부터 에러라니... 기분이 좋을리 없다.


이클립스 Europa(3.3) 또는 Ganymede(3.4)에서도 이런 현상이 발생한다.

해결하는 방법에는 여러가지가 있는데 eclipse.ini 에서 최대 메모리 사이즈를 줄이는 방법도 있고, JDK가 설치된 위치를 지정하는 방법도 있다. 메모르 사이즈를 줄이는 것은 왠지 찜찜해서 JDK 위치를 지정하는 것이 더 좋을 것 같다.

-vm
c:\Program Files\Java\jdk1.6.0_13\bin\javaw.exe

eclipse.ini 에 위와 같이 설정해 주면 된다. "c:\Program Files\Java\jdk1.6.0_13\bin\javaw.exe" 는 각자 환경에 맞도록 변경한다.

참고로 메모리 사이즈를 변경하는 방법은 eclipse.ini 에서
--launcher.XXMaxPermSize
256M
를 128메가 정도로 줄이거나

-Xmx512m
를 512보다 작은 값으로 설정하면 된다.

JDK 위치 지정은 Maven 플러그인 설치시 발생하는 문제도 해결할 수 있으니 메모리 사이즈를 줄이는 것보다 JDK 위치 지정하는 것을 추천한다.



관련글
2009/05/07 - [Programming/tool] - Eclipse is running in a JRE, but a JDK is required

'programming > tool' 카테고리의 다른 글

Maven Repository Architecture  (0) 2011.06.24
Eclipse plugins  (0) 2009.05.11
Eclipse is running in a JRE, but a JDK is required <Maven 이클립스 설정>  (0) 2009.05.07
VisualSVN Server 설치하기  (0) 2008.12.19
VisualSVN Server 소개  (0) 2008.12.15