[리눅스] find 명령어 실습

2021. 12. 15. 16:52 OS/Linux

-exec 명령 : 주어진 명령을 수행한다. 가장 흔히 쓰이는 행동들 중 하나이다,
명령에 매개변수들을 지정하는 방법은 이 표 다음에서 설명한다.
이 행동 끝에 \;를 붙어야 한다.
-ok 명령 : -exec와 같되 각 파일마다 명령을 수행하기 전에 사용자에게 확인을
받는다. 이 행동 역시 끝에 \;를 붙여야 한다.
-print : 파일 이름을 출력한다.


1. root 디렉토리로 부터 *.jpg 를 찾아 현재 디렉토리에 복사하기
☞ find . -type f -name *.jpg -exec cp {} . \;

2. 현재 디렉토리로 부터 10M 이상의 화일을 찾아서 출력하기.
☞ find . -type f -size +10000 -exec ls -alh {} \;

3. 현재 디렉토리로 부터 하루 이상 경과한 화일을 imsi 디렉토리로 이동 시키기.
☞ find . -atime +1 -type f -exec mv {} imsi\;

4. "-F"라는 화일을 찾아 삭제하기.
☞ find . -name "-F" -exec rm {} \;

5. 현재 디렉토리에서 대소문자에 상관없이 " 찾는 문자열" 을 포함한 라인을 출력하기.
☞ find . -exec grep -i "찾는 문자열" {} \;

6. 현재 디렉토리로 부터 *.Z 화일을 제외한 나머지 화일들을 *.Z으로 압축하기
☞ find . \! -name "*.Z" -exec compress -f {} \;

7. 현재 디렉토리로부터 *.Z 화일을 제외하고 또한 "제외할 화일명" 외의 화일들을 터미널 로 출력과 동시에 /tmp/list 에 추가하기
☞ find . -type f \! -name "*.Z" \! -name "제외할화일명" -print | tee -a /tmp/list

8. 현재 디렉토리로부터 이름이 *.ini인 화일을 출력하기
☞ find . -name "*.ini"

9. 현재 디렉토리 이하 서브 디렉토리를 포함한 모든 화일들에 대해 퍼미션 755로 변경하기
☞ find . -exec chmod 755 {} \; or chmod -R 755 ./ ;

10. 현재 디렉토리로 부터 user1 소유자로 표시된 화일들을 모두 user2의 사용자 권한으로 변경하기
☞ find . -user xuser1 -exec chown -R user2 {} \; or chown -R user2 ./

11. 현재 디렉토리로 부터 "찾을 xxx넘"을 대소문자 구별없이 검색하여 출력하기
☞ find . -exec grep -i "찾을 xxx넘" {} \;
☞ find . -grep -i "찾을 xxx넘" {} \;
☞ find . -ls -exec grep "찾을 xxx넘" {} \;

12. 6일 이전의 화일들을 찾아 출력하기
☞ find . -atime +6

13. 30일 이전 업데이트된 화일들의 라인수를 알아보기
☞ find . -atime +30 -exec ls \; | wc -l

14. /raid 디렉토리로 부터 "디렉토리명"을 가진 화일이 존재하면 / 복사할 경로 로 복사 하기.
☞ find /raid -type d -name "디렉토리명" -ok cp /복사할경로 {} \;

15. 찾을 화일 검색도중 에러 및 경고 메시지는 표시하지 않게 하기
☞ find . -name "찾을 화일" -print 2> /dev/null

16. 대소문자 구분없이 " 찾는글"을 포함된 화일에 대한 내용을 출력하지 않고, "찾는넘.list" 화일에 저장 및 more를 통해 검토하기
☞ find . -print -exec grep -i "찾는글" {} \; > 찾는넘.list
☞ find . -print -exec grep -i xeroxrel {} \; | more


17. 파일 권한이 700인 파일을 찾아준다.
☞ find . -perm 700 -print

18. 파일 권한이 400인 파일과 200인 파일을 찾아준다.
(주의: "\"의 앞뒤에 space 가 반드시 있어야 한다."
☞ find . \ ( -perm 400 -o -perm 200 ) -print

19. 파일의 블럭 크기가 1024 이상인 파일을 찾아준다.
☞ find . -size +1024 -print

20. 파일 이름이 core이고 크기가 2048블럭 이상인 파일을 찾아준다.
☞ find . -name core -size +2048 -print

21. 30일 이전에 억세스되었던 파일을 찾는다.
☞ find . -atime +30 -print

22. 7일 이내에 수정된 적이 있는 파일을 찾는다.
☞ find . -mtime -7 -print

23. 30일 이전에 억세스된 파일 중 *.c를 찾아 ls -l 한다.
☞ find . -name \*.c -atime +30 -exec ls -l {} \;

24. 현재 디렉토리 밑에서 이름이 core인 파일을 찾아 지운다(지우기 전에 정말
지울 지를 물어본다.)
☞ find . -name core -exec rm -i {} \;

25. 마운트된 디렉토리들은 검색하지 말라고 알려주는 효과를 낸다.
☞ find / -mount -name test -print

26. 현재 위치의 df.sh 파일보다 최근에 만들어진 파일형식을 출력한다.
☞ find -newer df.sh -type f -print

27. 현재 위치에서 df.sh 파일보다 최근에 만들어진 모든 것을 출력
☞ find -newer df.sh -print

28. 현재 위치에서 set.sh 파일보다 최근에 만들어진 모든 파일들은 모두 출력 된다.
☞ find . -newer set.sh -type f -exec ls -l {} \;

 

출처 : http://knamhun.blogspot.com/2009/03/find.html