내가 처음 소개한 find 명령어[find . -exec chmod 777 {} \;]는 내가 주로 쓰는 것을 소개하는 개념이었다.. 아래 내용은 김영성 님의 블로그를 참고했다.. 다만, 내 스타일대로 내 입맛대로 편집을 좀 했다..
난 처음 조건 뒤에 붙는 것이 -exec 만 있는줄 알았다.. 이거야 머 모르는게 죄다..ㅠ 그런데 두 개가 더 있었다.. 찾아보면 물론 다른게 더 있을지도 모르지만, 과거 언급한것처럼 리눅스 전문가도 아니고, 내가 쓰지 않고 있어서 그 이상의 언급을 하기에는 좀 무리가 있다.. 그럼 알게 된 부분에 대해서 확인해보자..
- -exec 명령 : 주어진 명령을 수행한다.. 가장 흔히 쓰이는 행동들 중 하나이며, 끝에 \;를 붙인다..
- -ok 명령 : -exec와 같지만, 각 파일마다 명령을 수행하기 전에 사용자에게 확인을 받는다.. 이것도 끝에 \;를 붙인다..
- -print : 파일 이름을 출력한다..
find 조건 뒤에 붙는 명령이다.. 다른 사람도 그런지 모르겠지만, 난 솔직히 설명을 길게 하는 것보단 간단한 예제를 보고 이해하거나 직접 실행해서 어떠한 결과가 나오는지를 통해서 이해를 많이 하는 편이다.. 그래서 간단한 설명과 예제를 올린다..
- root 디렉토리에서 *.jpg 를 찾아 현재 디렉토리에 복사하기..
find . -type f -name *.jpg -exec cp {} . \;
- 현재 디렉토리에서 10MB 이상의 파일을 찾아서 출력하기..
find . -type f -size +10000 -exec ls -alh {} \;
- 현재 디렉토리에서 하루 이상 경과한 파일을 imsi 디렉토리로 이동 시키기..
find . -atime +1 -type f -exec mv {} imsi\;
- "-F"라는 파일을 찾아 삭제하기..
find . -name "-F" -exec rm {} \;
- 현재 디렉토리에서 대소문자에 상관없이 "찾는 문자열" 을 포함한 라인 출력하기..
find . -exec grep -i "찾는 문자열" {} \;
- 현재 디렉토리에서 *.Z 화일을 제외한 나머지 파일들을 *.Z으로 압축하기..
find . \! -name "*.Z" -exec compress -f {} \;
- 현재 디렉토리에서 *.Z 파일을 제외하고, 또한 "제외할 파일명" 이외 파일들을 터미널로 출력과 동시에 /tmp/list 에 추가하기..
find . -type f \! -name "*.Z" \! -name
"제외할 파일명" -print | tee -a /tmp/list
- 현재 디렉토리에서 이름이 *.ini인 파일을 출력하기..
find . -name "*.ini"
- 현재 디렉토리 이하 서브 디렉토리를 포함한 모든 파일들에 대해 퍼미션 755로 변경하기..
find . -exec chmod 755 {} \;
find . -exec chmod -R 755 ./ ;
- 현재 디렉토리에서 user1 소유자로 표시된 파일들을 모두 user2의 사용자 권한으로 변경하기..
find . -user xuser1 -exec chown -R user2 {} \;
find . -user xuser1 -exec chown -R user2 ./
- 현재 디렉토리에서 "찾을 xxx넘"을 대소문자 구별없이 검색하여 출력하기..
find . -exec grep -i "찾을 xxx넘" {} \;
find . -grep -i "찾을 xxx넘" {} \;
find . -ls -exec grep "찾을 xxx넘" {} \;
- 6일 이전의 파일들을 찾아 출력하기..
find . -atime +6
- 30일 이전 업데이트 된 파일들의 라인수를 알아보기..
find . -atime +30 -exec ls \; | wc -l
- /raid 디렉토리에서 "디렉토리명"을 가진 파일이 존재하면, / 복사할 경로 로 복사 하기..
find /raid -type d -name "디렉토리명"
-ok cp /복사할경로 {} \;
- "찾을 파일" 검색도중 에러 및 경고 메시지는 표시하지 않게 하기..
find . -name "찾을 파일" -print 2> /dev/null
- 대소문자 구분없이 "찾는글"을 포함된 파일에 대한 내용을 출력하지 않고, "찾는넘.list" 파일에 저장 및 more를 통해 검토하기..
find . -print -exec grep -i "찾는글" {} \; > 찾는넘.list
find . -print -exec grep -i xeroxrel {} \; | more
- 파일 권한이 700인 파일을 찾기..
find . -perm 700 -print
- 파일 권한이 400인 파일과 200인 파일을 기.. [주의 : "\"의 앞뒤에 space 가 반드시 있어야 한다..]
find . \ ( -perm 400 -o -perm 200 ) -print
- 파일의 블럭 크기가 1024 이상인 파일을 찾기..
find . -size +1024 -print
- 파일 이름이 core이고, 크기가 2048블럭 이상인 파일을 찾기..
find . -name core -size +2048 -print
- 30일 이전에 액세스되었던 파일을 찾기..
find . -atime +30 -print
- 7일 이내에 수정된 적이 있는 파일을 찾기..
find . -mtime -7 -print
- 30일 이전에 액세스된 파일 중 *.c를 찾아 ls -l 하기..
find . -name \*.c -atime +30 -exec ls -l {} \;
- 현재 디렉토리에서 이름이 core인 파일을 찾아 지우기.. [지우기 전에 정말 지울지 물어본다..]
find . -name core -exec rm -i {} \;
- 마운트된 디렉토리들은 검색하지 말라고 알려주는 효과주기..
find / -mount -name test -print
- 현재 위치의 df.sh 파일보다 최근에 만들어진 파일형식을 출력하기..
find -newer df.sh -type f -print
- 현재 위치에서 df.sh 파일보다 최근에 만들어진 모든 것을 출력하기..
find -newer df.sh -print
- 현재 위치에서 set.sh 파일보다 최근에 만들어진 모든 파일들은 모두 출력하기..
find . -newer set.sh -type f -exec ls -l {} \;
이상이다.. 내가 검색을 하고, 내용을 옮겨오면서도 느낀것이 이 명령어들을 리눅스 전문가들은 어지간한건 외워서 할 것 아닌가.. 흐미.. 그나마 내 분야가 편하지 남들의 분야는 정말 어려운듯하다.. 또한, 내가 과연 위 명령어들 또는 추가적으로 검색을 해서 명령어를 얼마나 사용하려나.. ㅎㅎㅎ.. 만약 검색하다가 올리지 않은 명령어를 사용하게 된다면, 또 포스팅 하리라..