find. -name "*.java"./regexpvalidate/src/oracle/otnsamples/plsql/connectionmanager.java./regexpvalidate/src/oracle/otnsamples/plsql/dbmanager.java.. [

Similar documents
View Licenses and Services (customer)

PowerPoint 프레젠테이션

Adobe Flash 취약점 분석 (CVE )

[ 컴퓨터시스템 ] 3 주차 1 차시. 디렉토리사이의이동 3 주차 1 차시디렉토리사이의이동 학습목표 1. pwd 명령을사용하여현재디렉토리를확인할수있다. 2. cd 명령을사용하여다른디렉토리로이동할수있다. 3. ls 명령을사용하여디렉토리내의파일목록을옵션에따라다양하게확인할수

Windows 8에서 BioStar 1 설치하기

IRISCard Anywhere 5

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

User Guide

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

MF Driver Installation Guide

소규모 비즈니스를 위한 플레이북 여기서 다룰 내용은 다음과 같습니다. 1. YouTube 소개 2. YouTube에서 비즈니스를 위한 채널 만들기 3. 눈길을 끄는 동영상 만들기 4. 고객의 액션 유도하기 5. 비즈니스에 중요한 잠재고객에게 더 많이 도달하기

벤처연구사업(전동휠체어) 평가

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

사용자계정관리 1. 사용자계정관리 사용자 (user), 그룹 (group) u 다중사용자시스템 (Multi-User System) - 1 대의시스템을동시에여러사람이접속하여쓸수있게하는시스템 u 사용자 (user) - 시스템관리자 : root (=Super user) -

Microsoft PowerPoint - 5. 사용자 계정관리-1(2016-1학기).ppt [호환 모드]

SBR-100S User Manual

580 인물 강순( 康 純 1390(공양왕 2) 1468(예종 즉위년 ) 조선 초기의 명장.본관은 신천( 信 川 ).자는 태초( 太 初 ).시호는 장민( 莊 愍 ).보령현 지내리( 保 寧 縣 池 內 里,지금의 보령시 주포면 보령리)에서 출생하였다.아버지는 통훈대부 판무

슬라이드 1

쓰리 핸드(삼침) 요일 및 2405 요일 시간, 및 요일 설정 1. 용두를 2의 위치로 당기고 반시계방향으로 돌려 전날로 를 설정합니다. 2. 용두를 시계방향으로 돌려 전날로 요일을 설정합니다. 3. 용두를 3의 위치로 당기고 오늘 와 요일이 표시될 때까지 시계방향으로

Tcl의 문법

네이버블로그 :: 포스트내용 Print VMw are 에서 Linux 설치하기 (Centos 6.3, 리눅스 ) Linux 2013/02/23 22:52 /carrena/ VMware 에서 l

경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P

PowerPoint 프레젠테이션

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - comp_prac_081223_2.pptx

MySQL-Ch10

* 자원복구 * - 이동형저장장치오류 : 장치를찾을수없습니다. 포맷하세요.. 복구방법 : 1) 포맷진행 - 빠른포맷 2) 데이터복구프로그램을이용하여복구국내 : finaldata - 파티션복구 : Acronis Disk Directory Suit - 데이터복구 : R-s

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

160215

특징 찾아보기 열쇠 없이 문을 열 수 있어요! 비밀번호 및 RF카드로도 문을 열 수 있습니다. 또한 비밀번호가 외부인에게 알려질 위험에 대비, 통제번호까지 입력해 둘 수 있어 더욱 안심하고 사용할 수 있습니다. 나만의 비밀번호 및 RF카드를 가질 수 있어요! 다수의 가

ActFax 4.31 Local Privilege Escalation Exploit

Microsoft 을 열면 깔끔한 사용자 중심의 메뉴 및 레이아웃이 제일 먼저 눈에 띕니다. 또한 은 스마트폰, 테블릿 및 클라우드는 물론 가 설치되어 있지 않은 PC 에서도 사용할 수 있습니다. 따라서 장소와 디바이스에 관계 없이 언제, 어디서나 문서를 확인하고 편집

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

京 畿 鄕 土 史 學 第 16 輯 韓 國 文 化 院 聯 合 會 京 畿 道 支 會

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp


PowerPoint 프레젠테이션

2014_트렌드씨_웹용_1월_s

Microsoft PowerPoint - 01_1_Linux_Unix_기초.ppt [호환 모드]

PowerPoint 프레젠테이션

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

새로운 지점에서 단이 시작하는 경우 기둥코로 시작하라고 표시합니다. 기둥코(standing stitch)로 시작하는 방법은 YouTube 에서 찾아볼 수 있습니다. 특수 용어 팝콘뜨기: 1 코에 한길긴뜨기 5 코, 바늘을 빼고 첫번째 한길긴뜨기코의 앞에서 바늘을 넣은

연구노트

SIGIL 완벽입문

ThinkVantage Fingerprint Software

PowerPoint 프레젠테이션

작성자 : 기술지원부 김 삼 수

Chapter 05. 파일접근권한관리하기

No Title

1

3) MySQL data 백업백업방법 : dump 파일로저장저장위치 : /backup/mysqldump 백업주기 : 시간별 (/etc/cron.hourly) 또는일별 (/etc/cron.daily) 보관기간 : 7 일백업스크립트 : 아래예제 6-1). 참조 4) 웹데이

CD 무결성체크는 SKIP 을해도좋습니다. Next 버튼을누릅니다. Next 버튼을누릅니다.

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

untitled

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

Microsoft Word - How to make a ZigBee Network_kr

Microsoft PowerPoint - 07-EDU-LinuxCommand-4.ppt

PowerPoint 프레젠테이션

vRealize Automation용 VMware Remote Console - VMware

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1

FreeBSD Handbook

<4D F736F F F696E74202D20BFEEBFB5C3BCC1A6BDC7BDC D31C7D0B1E229202D20BDA92E BC8A3C8AF20B8F0B5E55D>

01Àå

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

006- 5¿ùc03ÖÁ¾T300çÃâ

170

시스템 사용자 계정 관리

오프라인 사용을 위한 Tekla Structures 라이선스 대여

°¡°Ç6¿ù³»ÁöÃÖÁ¾

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

Copyright 2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A..,,. Sun. Sun. Berkeley BSD. UNIX X/Open Company, Ltd.. Sun, Su

FreeBSD Handbook

2힉년미술

목 차 1. 드라이버 설치 설치환경 드라이버 설치 시 주의사항 USB 드라이버 파일 Windows XP에서 설치 Windows Vista / Windows 7에서 설치 Windows

텀블러514

Microsoft PowerPoint - chap04-연산자.pptx

H3250_Wi-Fi_E.book

/chroot/lib/ /chroot/etc/


SmartUpdaterPlus 설치 설치파일 다운로드 설치파일 다운로드하여 실행하여 순서에 따라 스마트 업데이트 플러스를 설치합니다. [스마트 업데이트 플러스 다운로드] 버튼을 클릭하여 설치파일 다운로드합니다. 소프트웨어 사용권에 동의하기를 누릅니다. 압축을 해제합니다

¼Òâ¹Ý¹®Áý¿ø°í.hwp

Oracle VM VirtualBox 설치 VirtualBox에서 가상머신 설치 가상머신에 Ubuntu 설치

쏘니표지

GNU/Linux 1, GNU/Linux MS-DOS LOADLIN DOS-MBR LILO DOS-MBR LILO... 6

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

2 목차 소개... 3 기능 개요... 4 주요 기능... 4 지원 미디어... 4 시작... 5 배포... 5 등록... 5 새 사용자로 등록하는 방법... 5 새 제품을 등록하는 방법... 5 평가판 활성화... 6 시스템 요구 사항... 8 드라이버 설치... 8

Microsoft PowerPoint - chap01-C언어개요.pptx

KARAAUTO_4¿ù.qxd-ÀÌÆå.ps, page Normalize

04 Çмú_±â¼ú±â»ç

온라인등록용 메뉴얼

Frequently Asked Question 버전 변경 날짜 변경 내용 v /07/22 최초 작성

RHEV 2.2 인증서 만료 확인 및 갱신

Microsoft PowerPoint 웹 연동 기술.pptx

Chapter 1

tiawPlot ac 사용방법

회원번호 대표자 공동자 KR000****1 권 * 영 KR000****1 박 * 순 KR000****1 박 * 애 이 * 홍 KR000****2 김 * 근 하 * 희 KR000****2 박 * 순 KR000****3 최 * 정 KR000****4 박 * 희 조 * 제

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

Transcription:

Linux find 명령어 완전 정복 가이드 Linux find 명령어 완전 정복 가이드 가장 강력하면서도 한편으로는 혼란스러운 유비쿼터스 명령어인 find 명령어에 대한 개요. Linux find 명령어는 모든 Linux 명령어 가운데 가장 유용하면서도 혼란스러운 명령어 가운데 하나입 니다. 다른 Linux 명령어의 표준 구문과 다른 구문을 가지고 있다는 점에서 어렵습니다. 하지만, 파일 명, 파일 유형, 사용자, 더 나아가 타임 스탬프 별로 파일을 찾을 수 있다는 점에서 강력한 명령어이기 도 합니다. find 명령어를 사용하면 이러한 속성을 자유롭게 조합해 파일의 위치를 찾을 수 있을 뿐만 아니라, 찾은 파일에 대해 연산을 수행할 수 있습니다. 본 글의 목적은 find 명령어와 그 잠재적 이점을 개략적으로 설명함으로써 find 명령어를 손쉽게 학습 및 사용할 수 있도록 돕는 것입니다. 동시에, find 명령어의 특성 중 가장 강력하면서도 한편으로는 혼 란스러운 측면에 대한 개요 및 참조를 제공할 것입니다. [주: 여기에서 사용된 find 명령어는 GNU 버전이기 때문에 일부 세부 내용은 다른 버전의 find 명령어 와 다를 수 있습니다.] 기본 형식 먼저, find 명령어의 기본 구조부터 살펴보겠습니다: find start_directory test options criteria_to_match action_to_perform_on_results 아래 명령어에서 find는 이름에 java 확장자를 가지고 있는 모든 파일을 대상으로. 가 표시된 현 재 디렉토리를 찾기 시작할 것입니다: find. -name "*.java" 아래에는 검색 결과에 대한 간단한 목록이 나열되어 있습니다:

find. -name "*.java"./regexpvalidate/src/oracle/otnsamples/plsql/connectionmanager.java./regexpvalidate/src/oracle/otnsamples/plsql/dbmanager.java.. [주: 본 글에서 잘라 붙이기를 해 find 명령어를 실행하는 경우에는 자체 키보드를 사용해 큰따옴표 ( )를 바꿔야 올바른 결과를 얻을 수 있습니다.] 아래 명령어 역시 동일한 연산을 수행할 것입니다. 어떤 경우든, find 명령어에 전달되도록 escape 문 을 통해 와일드카드 문자를 일반 문자로 처리해야 하며 쉘에 의해 해석되지 않아야 합니다. 따라서, 검 색 문자열에 큰타옴표를 붙이거나 그 앞에 역슬래시(\)를 붙이십시오: find. -name \*.java find에 대한 인수는 옵션이기는 하지만, 검색 시작 위치를 지정하지 않은 경우에는 현재 디렉토리에서 기본적으로 검색이 시작됩니다. 옵션 사항이기는 하지만 테스트 조건을 지정하지 않은 경우에는 불완 전하거나 선별되지 않은 결과값이 출력됩니다. 아래 3개의 find 명령어를 실행하면 똑같이 현재 디렉토리와 숨겨진 파일을 포함하는 모든 서브디렉토 리의 모든 파일 목록이 검색됩니다: find find. find. -print 이는 la 옵션을 가진 ls 명령어를 실행하는 것과 비슷합니다. 백업을 위해 위 명령어의 출력물에 전체 경로 이름이 포함되기를 원하는 경우라면 시작 디렉토리에 대한 전체 경로를 지정해야 합니다: find /home/bluher -name \*.java /home/bluher/plsql/regexpvalidate/src/oracle/otnsamples/plsql/connectionmanager.java /home/bluher/plsql/regexpvalidate/src/oracle/otnsamples/plsql/dbmanager.java/... 또한, 검색 문자열에 1개 이상의 시작 디렉토리를 지정할 수도 있습니다. 적정 권한을 가진 사용자로 서 실행되는 경우, 아래 명령어는 모든 jar 파일을 찾기 위해 /usr, /home 및 /tmp 디렉토리 순서로 내 려갈 것입니다:

find /usr /home /tmp -name "*.jar" 적정 권한이 없는 사용자라면 많은 시스템 디렉토리를 검색하기 시작할 때 다음과 같은 오류 메시지 가 나올 수 있습니다: find: /tmp/orbit-root: Permission denied 다음과 같이 검색 문자열을 추가함으로써 불명확한 결과가 나오는 것을 피할 수 있습니다: find /usr /home /tmp -name "*.jar" 2>/dev/null 이렇게 하면 모든 오류 메시지가 널(null) 파일로 전송되기 때문에 보다 정제된 출력물이 제공됩니다. 기본적으로 find 명령어는 대/소문자를 구별합니다. 대/소문자가 구별되는 find에서는 -name 테스트 를 대신해 -iname 테스트를 사용하십시오. find downloads -iname "*.gif" downloads/.xvpics/calendar05_enlarged.gif downloads/lcmgcfexsmall.gif 또한, 파일명 외에도 유형에 따라 파일을 검색할 수 있습니다. 예를 들어, 아래 명령어를 통해 디렉토 리의 모든 서브디렉토리를 찾을 수 있습니다: find. -type d 아래 명령어를 사용하면 /usr 디렉토리의 모든 심볼릭 링크(symbolic link)를 찾을 수 있습니다: find /usr -type l 위 명령어를 실행하면 3,000개 이상의 링크 목록이 나타날 것입니다. 슈퍼유저(root) 권한을 통해 아 래 명령어 가운데 하나를 실행하면 /usr 디렉토리의 링크 목록과 이것이 가리키는 파일이 나타납니다: # find /usr/bin -type l -name "z*" -exec ls -l {} \; lrwxrwxrwx 1 root root 8 Dec 12 23:17 /usr/bin/zsh -> /bin/zsh lrwxrwxrwx 1 root root 5 Dec 12 23:17 /usr/bin/zless -> zmore lrwxrwxrwx 1 root root 9 Dec 12 23:17 /usr/bin/zcat -> /bin/zcat

하지만, 보다 짧은 두 번째 명령어를 실행하면 디렉토리와 inode 정보를 가진 긴 파일 목록이 나올 것 입니다. -exec 및 ls 실행에 대해서는 후반부에서 다룰 것입니다 find가 찾을 수 있는 다른 파일 유형으로는 다음과 같은 것들이 있습니다 b block (buffered) special c character (unbuffered) special p named pipe (FIFO) s socket find 명령어의 시작점으로 루트를 사용하면 시스템 속도가 크게 느려질 수 있습니다. 반드시 명령어를 실행해야 하는 경우에는 사용량이 적은 시간대나 야간에 실행하는 것이 좋습니다. 아래 구문을 사용 해 출력물을 파일로 보낼 수 있습니다.: find / -print > masterfilelist.out 원치 않는 출력물을 대량 생산하는 find 명령어를 실수로 입력한 경우에는 CTRL-C를 누르기만 하면 가장 최근에 실행된 명령어가 중단됩니다. 여러 파일 시스템을 갖춘 엔터프라이즈 네트워크에서는 특히 find 명령어가 검색한 파일을 제한하는 것이 좋습니다. 필요한 수 만큼 옵션 및 테스트를 사용함으로써 시스템 상의 로드를 줄일 수 있습니 다. 이를 위해 가장 유용하게 사용할 수 있는 옵션은 xdev와 -mount입니다. 이들 옵션은 find 명령어 가 MS-DOS, CD-ROM 또는 AFS와 같은 다른 파일 시스템 상의 디렉토리로 내려가지 않도록 함으로 써 검색 범위를 좁혀줍니다. 따라서, 시작 디렉토리와 동일한 유형의 파일 시스템으로 검색을 제한할 수 있습니다. 듀얼 부팅 시스템 사용자는 mount 명령어가 실행되는 경우에 이러한 옵션을 사용할 수 있습니다. Windows 파티션이 관련되어 있다고 가정하면, 아래와 같은 명령어를 통해 마운팅 할 수 있습니다.: mount -t vfat /dev/sda1 /mnt/msdos 여러분이 사용하는 실제 명령어는 시스템 설정 방법에 따라 달라집니다. df를 실행하거나 아래 명령어 를 수행함으로써 파티션 마운팅 여부를 확인할 수 있습니다: find /mnt/msdos -name "*.txt" 2> /dev/null

MS Windows 파티션에서는 파일 목록이 길 수 밖에 없습니다. 이제부터는 -mount 또는 -xdev 옵션 을 통해 아래 명령어를 실행하십시오: find / -name "*.txt" -mount 2> /dev/null 또는 find / -name "*.txt" -xdev 2> /dev/null 아래 예에서와 같이 -fstype 테스트를 사용해 find 명령어에 찾고자 하는 파일 시스템을 명확하게 알려 줄 수도 있습니다: find / -name "*.txt" -fstype vfat 2> /dev/null 시간 찾기 find 명령어는 시스템의 타임 스탬프를 토대로 파일 검색에 사용할 수 있는 여러 개의 옵션을 가지고 있습니다. 이러한 타임 스탬프로는 다음이 포함됩니다 mtime 파일 내용이 마지막으로 수정된 시간 atime 파일을 읽기 또는 액세스한 시간 ctime 파일 상태가 변경된 시간 mtime 및 atime의 의미는 그 자체로 쉽게 알 수 있지만, ctime는 좀 더 설명이 필요합니다. inode는 각 파일에 메타 데이터를 가지고 있기 때문에 파일에 연결된 메타 데이터가 변경되면 inode 데이터도 변경됩니다. 파일에 대한 심볼릭 링크 생성, 파일에 대한 권한 변경, 파일 이동 등과 같은 다양한 작업 으로 인해 이러한 메타 데이터 변경이 야기될 수 있습니다. 이러한 경우, 파일 내용에 대한 읽기나 수 정은 수행되지 않기 때문에 themtime 및 atime은 변하지 않지만 ctime은 변합니다. 이러한 시간 옵션은 각기 -n, n 또는 +n로 지정된 n 값을 함께 사용해야 합니다. -n은 n 이하를 반환 +n은 n 이상을 반환 n은 정확히 n에 해당되는 값을 반환 보다 명확한 설명을 위해 몇 가지 예를 살펴 보겠습니다. 아래 명령어는 최근 1시간 동안 수정된 모든

파일을 찾아줍니다: find. -mtime -1./plsql/FORALLSample./plsql/RegExpDNASample /plsql/regexpsample -1 대신 1을 가진 동일 명령어를 실행하면 정확하게 1시간 전에 수정된 모든 파일을 찾을 수 있습니 다: find. -mtime 1 위 명령어는 정확하게 일치하는 값을 요청하기 때문에 모든 결과값이 나오지는 않습니다. 아래 명령어 는 1시간 이전에 수정된 파일을 찾아줍니다: find. -mtime +1 기본적으로 -mtime, -atime 및 ctime는 최근 24 시간에 대한 타임 스탬프입니다. 하지만, 뒤에 days tart 옵션을 붙이면 오늘을 시작으로 24시간 주기가 시작됩니다. 또한, mmin, amin 및 cmin을 사용하 면 분 단위로 변경된 타임 스탬프를 찾을 수 있습니다. 여러분의 계정으로 로그인한 후 즉시 아래 명령어를 실행하면 최근 1분 내에 읽은 모든 파일을 찾을 수 있습니다: find. -amin -1./.bashrc /.bash_history./.xauthj5fcx1 find 명령어만으로 파일의 위치를 찾으면 메타 데이터의 일부인 파일의 액세스 시간이 변경된다는 사 실에 유의하십시오. -newer, -anewer 및 cnewer 옵션을 사용하면 특정 파일과 비교해 수정 또는 액세스된 파일을 찾을 수도 있습니다. 이는 -mtime, -atime 및 ctime과 비슷합니다. -newer : 보다 최근에 내용이 수정된 파일 -anewer : 보다 최근에 읽기가 수행된 파일 -cnewer : 보다 최근에 상태가 변경된 파일

마지막 tar 파일 이후로 어떤 방법으로든지 수정된 홈 디렉토리의 파일을 모두 찾으려면 아래 명령어 를 사용하십시오: find. -newer backup.tar.gz 크기에 따른 파일 찾기 -size 옵션은 지정된 크기 기준에 부합하는 파일을 찾아줍니다. 크기가 5MB 이상인 모든 파일을 찾으 려면 아래와 같이 하십시오 find / -size +5000000c 2> /dev/null /var/log/lastlog /var/log/cups/access_log.4 /var/spool/mail/bluher 마지막에 c 를 붙이면 결과가 바이트 단위로 보고됩니다. 기본적으로 find 명령어는 512 바이트 블록 의 수로 크기를 보고합니다. 또한, c 를 k 로 교체하는 경우에는 킬로바이트 수로, w 를 사용하는 경우에는 2바이트 워드의 수로 결과를 표시할 수 있습니다. -size 옵션은 모든 제로 바이트 파일을 찾거나 이들 파일을 /tmp/zerobyte 폴더로 이동하기 위해 자 주 사용됩니다. 아래 명령어가 바로 이러한 연산을 수행합니다. find test -type f -size 0 -exec mv {} /tmp/zerobyte \; -exec 옵션은 find 명령어가 만나게 되는 파일의 모든 쉘 명령어를 수행할 수 있도록 해줍니다. 후반부 에서 이 옵션의 보다 다양한 사용 예를 확인할 수 있습니다. 중괄호를 사용하면 빈 파일 각각을 이동시 킬 수 있습니다 또한, -empty 옵션을 사용하면 빈 파일을 찾을 수 있습니다. find test -empty test/foo test/test 권한 및 소유권에 따른 파일 찾기

find 명령어는 시스템 보안 모니터링을 위해 없어서는 안될 명령어입니다. 아래와 같이 기호법이나 8 진법을 통해 사용 권한이 널리 열려있는 파일을 찾을 수 있습니다. find. -type f -perm a=rwx -exec ls -l {} \; 또는 find. -type f -perm 777 -exec ls -l {} \; -rwxrwxrwx 1 bluher users 0 May 24 14:14./test.txt 위의 명령어나 아래 명령어의 경우 -exec ls l을 수행하고 있기 때문에, 반환된 파일의 실제 사용 권 한을 확인할 수 있습니다. 이 명령어는 기타 사용자 및 그룹이 모두 쓰기를 수행할 수 있는 파일을 찾아줍니다. find plsql -type f -perm -ug=rw -exec ls -l {} \; 2>/dev/null 또는 find plsql -type f -perm -220 -exec ls -l {} \; 2>/dev/null -rw-rw-rw- 1 bluher users 4303 Jun 7 2004 plsql/forallsample/doc/otn_new.css -rw-rw-rw- 1 bluher users 10286 Jan 12 2005 plsql/forallsample/doc/readme.html -rw-rw-rw- 1 bluher users 22647 Jan 12 2005 plsql/forallsample/src/config.sql.. 아래 명령어들을 실행하면 사용자, 그룹 또는 둘 모두가 쓰기 작업을 할 수 있는 파일을 찾을 수 있습 니다 find plsql -type f -perm /ug=rw -exec ls -l {} \; 2>/dev/null, or, find plsql -type f -perm /220 -exec ls -l {} \; 2>/dev/null -rw-r--r-- 1 bluher users 21473 May 3 16:02 plsql/regexpvalidate.zip -rw-rw-rw- 1 bluher users 4303 Jun 7 2004 plsql/forallsample/doc/otn_new.css -rw-rw-rw- 1 bluher users 10286 Jan 12 2005 plsql/forallsample/doc/readme.html -rw-rw-rw- 1 bluher users 22647 Jan 12 2005 plsql/forallsample/src/config.sql 웹이나 기존 매뉴얼에는 아래 명령어로 나와 있을 것입니다. find. -perm +220 -exec ls -l {} \; 2> /dev/null

+ 기호는 / 기호와 동일한 역할을 하지만, 새로운 버전의 GNU findutils에서는 권장되지 않고 있습니 다. 시스템에서 쓰기 가능한 모든 파일을 찾으려면 아래 명령어를 사용하십시오 find / -wholename '/proc' -prune -o -type f -perm -0002 -exec ls -l {} \; -rw-rw-rw- 1 bluher users 4303 Jun 7 2004/home/bluher/plsql/FORALLSample/doc/otn_new.css -rw-rw-rw- 1 bluher users 10286 Jan 12 2005 /home/bluher/plsql/forallsample/doc/readme.html... 4번째 사용 권한에 대해 앞으로 조금 더 다루겠지만, 마지막 필드의 2 는 쓰기 비트로도 알려져 있는 파일 사용 권한의 기타 사용자 에 해당됩니다. 우리는 설정된 다른 사용 권한이 무엇이든 관계 없이 기타 사용자를 위해 설정된 쓰기 권한을 가진 파일을 보고 싶다는 표시로 0002라는 사용 권한 모드 앞 에 대시를 사용했습니다. 위의 명령어에서는 3가지 새로운 개념이 도입되었습니다. 패턴이 발견된 경우, prune은 파일 패턴 /proc 에서 -wholename 테스트를 사용함으로써 find 명령어가 이 디렉토리로 내려오지 않도록 막아 줍니다. 불린 연산자 -o 를 통해 find 명령어는 다른 디렉토리에서 명령어의 나머지 부분을 처리할 수 있습니다. 각 표현식 간에 가정된 암시적 and 연산자(-a)가 있기 때문에 좌측 표현식이 거짓(false) 으로 평가된 경우 and 뒤에 나오는 표현식은 평가되지 않습니다. 따라서, -o 연산자가 필요합니다. 강 제 우선 순위 적용을 위해 괄호를 사용하는 것처럼 find 명령어는 불린 연산자 -not,!,도 지원합니다. 시스템 관리자는 자주 find 명령어를 통해 해당 사용자나 그룹의 이름 또는 ID를 사용해 특정 사용자 나 그룹의 정규 파일을 검색하고 있습니다: [root] $ find / -type f -user bluher -exec ls -ls {} \; 여기, 이러한 명령어의 출력에 대한 간단한 예제가 나와 있습니다: 4 -rw-r--r-- 1 bluher users 48 May 1 03:09 /home/bluher/public_html/.directory 4 -rw-r--r-- 1 bluher users 925 May 1 03:09 /home/bluher/.profile 또한, find 명령어를 사용해 그룹 별로 파일을 검색할 수도 있습니다: [root] $ find / -type f -group users find / -type d -gid 100 이 명령어를 실행하면 그룹 ID 100이 소유하고 있는 디렉토리 목록이 나옵니다. 해당되는 uid 또는 gid

를 찾기 위해 /etc/passwd 또는 /etc/group 파일에서 more 또는 cat 명령어를 실행할 수 있습니다 이 명령어는 알려진 특정 사용자 및 그룹에 관한 파일을 찾는 것 외에도 사용자나 그룹이 지정되지 않 은 파일을 찾는 데도 유용합니다. 아래 명령어는 /etc/passwd 또는 /etc/group 파일에서 리스트를 가 지고 있지 않은 파일을 식별합니다. find / -nouser -o -nogroup 위 명령어는 실제로 시스템 상에 결과를 제공하는 것은 아니지만, 파일을 이동한 후에 사용자나 그룹 이 지정되지 않은 파일을 식별하는 데 사용할 수 있습니다 이제, 본 섹션 초반부에 언급한 별도의 높은 사용 권한 문제를 해결할 수 있게 되었습니다. SGID 및 SUID는 UNIX 기반 운영 체제 상의 파일 및 디렉토리에 할당할 수 있는 특별 액세스 권한 플 래그입니다. 컴퓨터 시스템 액세스에 있어 일반 권한을 가진 사용자가 일시적으로 높아진 권한을 가지 고 바이너리 실행 파일을 수행할 수 있습니다. find / \( -perm -2000 -o -perm -4000 \) -ls 167901 12 -rwsr-xr-x 1 root root 9340 Jun 16 2006 /usr/bin/rsh 167334 12 -rwxr-sr-x 1 root tty 10532 May 4 2007 /usr/bin/wall 위 명령어에서 괄호가 escape 처리된 것을 볼 수 있습니다. 또한, 권한 간의 차이점을 확인할 수 있습 니다. 첫 번째 파일에는 SGID 권한이 설정되어 있으며 두 번째 파일에는 SUID 권한이 설정되어 있습 니다. 위 명령어의 마지막 연산은 -exec ls -dils 연산의 find 명령어와 유사합니다 find 명령어 제어 Linux의 많은 명령어와 달리, find 명령어는 -r 또는 -R 옵션이 없이도 서브디렉토리로 내려가지 않습 니다. 이는 기본적으로 지원됩니다. 하지만, 때에 따라 이를 제한하고 싶을 수 있습니다. 이럴 경우, -d epth, -maxdepth 및 mindepth 옵션과 prune 연산이 유용합니다 -prune이 얼마나 유용한지는 이미 확인했기 때문에 이제는 -depth, -maxdepth 및 -mindepth 옵션 에 대해 살펴보겠습니다. -maxdepth 및 -mindepth 옵션을 사용하면 find 명령어를 통해 검색하고자 하는 디렉토리 트리의 수 준을 지정할 수 있습니다. find 명령어가 단 한 수준의 디렉토리를 찾도록 하고 싶은 경우에는 maxdep th 옵션을 사용할 수 있습니다. 아래 명령어를 실행해 디렉토리 트리의 상위 3개 수준의 로그 파일을 검색하면 maxdepth의 효과를 확인할 수 있습니다. 이렇게 하면 maxdepth 없이 실행할 때 보다는 훨씬 적은 출력 결과가 나옵니다

find / -maxdepth 3 -name "*log" 또한, find 명령어에게 디렉토리 트리에서 최소 3개 수준까지 디렉토리를 검색할 것을 지시할 수 있습 니다. find / -mindepth 3 -name "*log" -depth 옵션은 내용 평가에 앞서 디렉토리를 평가할 수 있도록 해줍니다. 아래 명령어는 한 예입니 다.: find -name "*test*" -depth./test/test./test./localbin/test./localbin/test_shell_var./localbin/test.txt./test2/test/test./test2/test./test2 find 명령어의 세계 지금까지 find 명령어의 유용하지만 다소 혼란스러운 일부 기능에 대해 알아보았지만, find 명령어가 수행할 수 있는 추가 작업이 있습니다. 예를 들어, find 명령어가 기존 버전의 UNIX 및 기타 운영 체제 와 호환 가능하도록 하고 여러 파일로 출력을 인쇄하도록 하는 등 연산을 수행할 수 있도록 하는 옵션 이 있습니다. 본 자료를 읽은 다음에는 find 명령어에 대한 맨페이지(man page)를 이해할 수 있는 배 경 지식을 갖추었을 것으로 생각하기 때문에 이 강력하면서도 유용한 툴을 직접 경험해 볼 것을 권합 니다 필자소개 Sheryl Calish 는 Linux 전문 IT 컨설턴트입니다. Blue Heron Consulting을 거쳐 현재는 EquityBuild에 서 IT 디렉터를 맡고 있습니다 출처 : 한국 오라클 제공 : DB포탈사이트 DBguide.net