[Info]Tags categorized posts and contents patterns..

[AJAX] Ajax Code E xamples.. [Book] About the book.. [CSS] CSS Code E xamples.. [DB] Sql Code E xamples.. [DEV] All development stor...

2016년 4월 7일 목요일

[Linux]find 활용한 명령어들..

뜻하지 않게 검색해서 파일 권한 바꾸기 포스팅과 chmod 권한 정의 포스팅에 이은 약간 3탄격의 포스팅이 되었다.. 이번에는 find 활용한 명령어들의 예를 조금 더 검색해봤다..

내가 처음 소개한 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 {} \;

이상이다.. 내가 검색을 하고, 내용을 옮겨오면서도 느낀것이 이 명령어들을 리눅스 전문가들은 어지간한건 외워서 할 것 아닌가.. 흐미.. 그나마 내 분야가 편하지 남들의 분야는 정말 어려운듯하다.. 또한, 내가 과연 위 명령어들 또는 추가적으로 검색을 해서 명령어를 얼마나 사용하려나.. ㅎㅎㅎ.. 만약 검색하다가 올리지 않은 명령어를 사용하게 된다면, 또 포스팅 하리라..


[Linux]chmod 권한변경에 따른 권한 정의..

몇 일전 Linux 검색을 통한 파일권한 바꾸기 내용으로 포스팅을 했었다.. 포스팅 말미에 777 권한에 대한 부분과 find 를 활용한 디테일한 명령어를 재 포스팅하고자 했었는데 그 중 하나로 오늘은 chmod 777 처럼 권한부여에 대한 부분을 포스팅하려고 한다..

무작정 내가 아는 것으로만 하면, 잘못된 정보를 전파하거나 나 스스로 잘못된 정보를 알고서 넘어갈 우려가 있기에 역시나 검색을 좀 해봤는데 누에고치의 누리집 블로그에 참고하기 좋을만한 포스팅이 있었다.. 단, 해당 포스팅에는 chmod 에 대한 간단한 내용만 있기에 옵션 내지는 좀 더 상세한 부분은 스스로 검색을 더 해야 된다..

chmod 명령어의 기본적인 패턴을 보자면, 내가 제일 많이 쓰는 권한인데 아래와 같다..

chmod 777 redpigdevs.java

즉, chmod [권한] [파일명] 패턴이다.. 앞에 명령어 chmod 는 상태를(Mode) 바꿔주는(Change) 명령어의 줄임말이라고 한다.. 이번에 처음 알았다능..;;; 성격상 어원을 찾거나 히스토리를 알아보고 하는 편이 아니다보니.. ㅎㅎㅎ..

권한은 세 가지의 권한이 있다.. 쓰기, 읽기, 실행
해당 권한은 방문자, 관리자, 사용자로 나누어진다.. 

그렇다면, 위의 chmod 777 redpigdevs.java 에서 권한 777은 방문자, 관리자, 사용자에게 해당 파일에 대해서 모든 권한을 주겠다는 것이다..

권한 숫자에 대한 패턴의 정의는 아래와 같다..

0 - 권한 없음
1 - 실행만
2 - 쓰기만
3 - 쓰기 실행
4 - 읽기만
5 - 읽기 실행
6 - 읽기 쓰기
7 - 모든 권한

여기서 숫자의 첫번째는 사용자, 두번째는 그룹, 세번째는 관리자 이다..

물론 이전 포스팅에서 언급하것처럼 File Zilla 를 통해서 하면 훨씬 간단하긴 하다.. 권한을 바꾸고자 하는 파일에서 우클릭을 해서 파일권한 메뉴를 들어가면, 소유자 권한에 대한 읽기, 쓰기, 실행 그리고 그룹 권한에 대한 읽기, 쓰기, 실행 마지막으로 공개 권한에 대한 읽기, 쓰기, 실행 을 한방에 설정할 수 있으니까..

나부터도 옛날 같으면, 걍 편한 Tool 을 이용했을테지만, 심경에 작은 변화가 생긴 이후로는 Tool 을 사용하더라도 아날로그식으로 직접 타이핑하고 하는 부분도 꼭 인지를 하려고 노력한다..

[Tool]Grep Console : 이클립스 콘솔 이쁘게 보기..

출처 : Outsider's Dev Story https://blog.outsider.ne.kr/

큰 프로젝트를 개발하다보니 이클립스 콘솔에 출력되는 수많은 로그를 뒤지는 것도 보통 일이 아니었습니다. 개발과정에서는 디버깅을 위해 로그레벨을 높여서 사용하므로 엄청난 양의 로그가 출력되고 그 중에서 필요한 부분을 찾으려면 수없이 스크롤하고 텍스트 검색을 해야했습니다. 더군다나 로그메시지는 자세히 보지 않으면 비슷비슷해 보이기 때문에 집중해서 보지 않으면 찾기도 쉽지 않았습니다.

이클립스 콘솔에  출력된 로그 메시지

다 똑같이 출력되니까 로그 메시지 뒤지는데도 상당한 시간이 소비되었는데 얼마전에 콘솔의 메시지를 종류별로 다양한 색으로 보여주는 플러그인이 있다는 걸 알게되었습니다. Logback을 쓴다면 사용할 수 있는 Logback Console Plugin for Eclipse도 있었지만 좀더 범용적으로 쓸 수 있는 Grep Console을 선택했습니다. 이클립스를 Indigo(3.7)버전을 쓴다면 이클립스 마켓플레이스에서 존재하므로 바로 설치할 수 있습니다.

이클립스 마켓플레이스의 Grep Console

이클립스를 3.6이하의 버전을 사용한다면 [Help] - [Install New Software]에서 http://eclipse.musgit.com를 추가하고 설치할 수 있습니다.

Grep Console이 설치된 콘솔

설치가 완료되면 위처럼 콘솔에 우측에 (?) 아이콘이 생성됩니다. 이 아이콘을 클릭하면 다음과 같은 Grep Expression 관리화면이 나타납니다.

Grep Expression 관리화면

Grep Console은 정규표현식을 사용해서 로그메시지를 구분하고 각 규칙마다 원하는 색을 지정할 수 있는 구조로 되어있습니다. 처음에는 아무 규칙도 등록되어 있지 않으므로 Add를 눌러서 규칙을 등록하면 됩니다. 위처럼 정규표현식 규칙을 등록합니다. 정규표현식에서 괄호로 그룹을 3개 만들었으므로 규칙에서 Whole Line과 그룹 3개가 나타납니다. Whole Line은 정규표현식으로 잡힌 라인전체에 대한 설정이고 그룹별로도 다른 설정을 할 수 있습니다. 기본적인 로그레벨에 대한 구분은 다음 정규식을 이용해서 할 수 있습니다.

(.*)(TRACE)(.*)
(.*)(DEBUG)(.*)
(.*)(ERROR)(.*)
(.*)(FATAL)(.*)
(.*)(INFO)(.*)

콘솔에서 선택한 텍스트로 Grep Console를 추가하는 화면

위처럼 로그메시지에서 블락을 설정하고 마우스의 우측클릭을 하면 Add Grep Expression이라는 메뉴가 나서 현재 선택한 텍스트를 기준으로 바로 정규표현식을 생성할 수 있습니다. 물론 이는 기본적인 정규표현식이므로 세밀한 제어를 하려면 정규표현식을 수정해야 합니다. 위 그림은 하이버네이트에 대한 로그를 따로 구분하기 위해서 설정했습니다.

Grep Console 규칙별로 다르게 표시된 콘솔

이제 위처럼 로그가 구분되어 나오기 때문에 쉽게 찾고자 하는 로그를 구분해서 볼 수 있습니다. Grep Console은 정규표현식을 사용하기 때문에 필요한 만큼 다양하게 설정할 수 있어서 출력로그의 규칙성만 찾으면 자유롭게 등록해서 사용할 수 있습니다.



[UFC]ROAD FC 권아솔의 도발과 최홍만 그리고 아오르꺼러..

오늘의 포스팅의 포문은 이종격투기 관련 내용이다.. 내가 아무래도 이종격투기에 관심이 많다보니 관련 뉴스를 좀 보게 된다.. 하지만, 나 스스로 명심할 것은 이 블로그의 최초 목적은 햄처럼 개발이란것에 조금이나마 관심도를 높이고자이며, 무엇보다 내가 모르거나 개발하면서 알게된 것들에 대해서 가끔이더라도 아주 소소한것이더라도 올리려고 노력하자는 것이다..

제목을 보면 알겠지만, 카테고리는 [UFC]이지만, 실제 내용은 우리나라 최대 이종격투기 단체라고 할 수 있는 ROAD FC 관련된 내용이다.. 처음에는 카테고리를 또 생성할까 했지만, ROAD FC 를 포함한 국내 TOP FC 등 해외 단체로는 ONE, 벨라토르 등 수많은 격투기 단체가 있다.. 그 단체 관련 뉴스가 나올 때마다 관심이 있다고 해서 카테고리를 붙일 수는 없는 노릇이다.. 그래서 [UFC]ROAD FC.. 또는 [UFC]TOP FC.. 라고 앞에 붙인 후에 제목을 쓰기로 하였다.. 아무래도 UFC 가 세계 최대 단체이기에 큰 그림에서의 카테고리는 [UFC]만 유지하기로 마음 먹은것이다..

우선 제목을 보자..

권아솔의 도발과 최홍만 그리고 아오르꺼러..

6일 서울 압구정짐에서 16일 중국 베이징에서 계최하게 되는 ROAD FC 30 대회 기자회견이 있었다.. 권아솔은 해당 경기 중 최홍만 vs 아오르꺼러 경기에 대해서 독설을 내뱉었다..

아오르꺼러에게는.. “내 목표는 아오르꺼러다. 같은 체육관의 김재훈에게 비매너로 이겼다. 그때 사람들이 말리지 않았다면 내가 아오르꺼러를 끝냈을 것” 또한, “아오르꺼러를 이기고 싶은 마음 뿐이다”

최홍만에게는.. "최홍만이 운동을 하지 않았으면 좋겠다. 여러분도 다 알다시피 서커스 매치 아니냐? 왜 내가 이 테이블 끄트머리에 앉아 있어야 하는지 모르겠다. 최홍만이 나보다 파이트머니를 몇 배 더 받는데, 그게 이해가 되지 않는다"

"홍만이 형, 이제 운동 그만하시죠. 난 홍만이 형이 그만했으면 좋겠어요. 아니면 나와 붙으실래요? 나와 붙고 추하게 내려가시든가, 여기서 그만하시든가 하시죠" 라고 말이다..

우선 윗부분의 행동이 계기가 된 것은 지난해 12월 ROAD FC 27 경기 때문이라고 볼 수 있다.. 

1차적으로 김재훈 vs 아오르꺼러 경기가 있었는데 간략히 얘기하자면, 아오르꺼러 펀치에 김재훈이 쓰러지고, 심판이 말렸지만 흥분한 아오르꺼러는 김재훈을 향해서 계속 펀치를 날렸다.. 덕분에[?] 경기장은 아수라장이 되고, 그 당시 권아솔도 올라와서 말리다가 아오르꺼러와 즉석 경기가 될뻔한 상황이 있었다.. 그 부분은 아오르꺼러의 명백한 비매너 행위였다..

2차적으로 최홍만 vs 루오첸차오 경기가 있었다.. 해당 경기는 최홍만이 이기긴 하였으나 엄청 오랫만의 최홍만이 임한 경기였고, 무엇보다 경기 내용이 문제인데 상대를 압도해서 이긴것이 아니였다.. 물론 상대 선수의 부상으로 인한 레프리 스톱[선수가 경기를 할 수 없다고 판단할 때 레프리가 경기를 중지하는 것..]이긴 했지만, 그 이전까지도 딱히 압도한 경기력이 보이거나 몸이 가볍지도 않았던 것이다.. 그런데 더더욱 웃긴것은 파이트 머니를 상당금액 받고 있었던 것..

그렇다.. 바로 위 두가지가 권아솔 입장에서는 두 선수에게 불만을 갖게 된것이다.. 요약하면, 아오르꺼러는 내가 때려눕혀주겠다 팀동료의 복수를 위해서..!! 최홍만은 돈벌기 위해서 진짜 실력자 동료 선수들의 자리를 빼앗고 있다..!! 이정도라고 할 수 있다..

물론 내가 왜곡하는 걸수도 있다.. 또한, 우리나라 정서에서 권아솔 같은 트래쉬 토크가 맞지는 않는다.. 너무 얌전한 국민성 때문이라고 해야될까.. 혹은 상대에 대한 예의를 너무 신경쓰기 때문이다.. 하지만, UFC 를 보라.. 코너 맥그리거, 비스핑, 네이트 디아즈, 존 존스 등등 수 많은 선수들이 트래쉬 토크를 즐기고 있고, 이를 통해서 이벤트의 관심도를 높일 뿐더러 본인의 케릭터도 잡고 대중에게 알리고 한다..

잠시 얘기가 옆길로 갔는데 트래쉬 토크가 문제가 아니고, 권아솔이 위처럼 도발을 하고, 테이블을 뒤 엎는 행동으로 기자회견장을 아수라장으로 만들었다.. 기본적으로 나도 권아솔 말에 일정부분 동감을 한다.. 주최즉 입장에서는 분명히 대회는 흥행성이 있어야 된다.. 그렇기에 최홍만 같은 인지도가 높은 선수를 내보내는 것도 맞다.. 하지만, 거기까지다.. 너무 이목을 집중시키는데만 있을 뿐이다.. 권아솔 말대로 파이트 머니도 최홍만은 많이 받는다.. 실제 경기의 질을 높이고 격투기를 생업으로 사는 선수들 보다 더 말이지.. 그건 문제 있는거 아닌가..?? 그렇다면, 최홍만이 경기실력이 엄청 좋은가..?? 그것도 아니다.. 단순히 이슈메이커일 뿐이다.. 난 특히나 최홍만의 정제되지 않은듯한 붕붕훅과 발차기는 진짜 맘에 안든다.. 그 어떤 격투기 선수가 막싸움식으로 팔과 다리를 휘두르냔 말이다..

무엇보다 기자회견 자리에서 최홍만은 권아솔의 도발에 외마디 한숨?? 샤우팅?? 후에 자리를 박차고 나갔지만, 난 그것도 웃기다.. 프로라면, 말로 같이 싸우건 그 자리를 지켰어야지.. 본인 승질난다고 자리에서 사라지는것은 말도 안되는 것이라고 개인적으로 생각한다.. UFC 의 계최량 영상에서 위처럼 서로 도발뒤에 안지려고 기싸움 하는 것을 상당히 많이 보게 된다..

논란은 논란일 뿐 조만간 펼쳐질 ROAD FC 30 이 기대 된다.. 무엇보다 최홍만 본인의 말처럼 얼마나 몸상태가 좋아졌는지 증명해야되며, 직전경기의 무기력한 모습[이전 경기를 이긴것이 중요한것이 아니다..]에서 얼마나 탈피했는지도 증명해야 되기 때문이다.. 우리나라 이종격투기도 어서 많은 발전을 하고, 연출이건 머건간에 선수들이 조금씩 더 과감해지고 했으면 좋겠다..

권아솔 선수가 다 바른 말만 한것은 아니지만, 난 저런 자신감과 똘끼가 좋다.. 그리고 이기건 지건 화끈함을 추구하는 것도 좋다.. 권아솔 선수의 방향성에 대해서 상당히 기대가 되고 흥미롭다.. 괜히 앞에서 예의차리고, 뒤에서 욕하는것보다 좋지 않은가..?? 사회에서는 저렇게하면, 매장당하겠지만.. 된장;;;

참..!! 결정적으로 최홍만을 예능인이 아닌 선수로서는 그닥 안좋아하지만, 이번 경기는 확실하게 이겨주길 바란다.. 비매너 경기를 했던 아오르꺼러이기에 꼭 이겼으면 좋겠다.. 경기력 문제와 파이트 머니 문제는 그 다음이다.. 닥치고 우선 이겨라..!!