[유닉스/리눅스] 파일찾기
- find
명령어 | 설명 |
find path [option] [argument] | 지정된 경로부터 하위 디렉토리까지 조건에 맞는 파일 검색 [조건 옵션] -name 파일 이름 -type 파일 타입 (f : 일반파일, d : 일반 디렉토리, l : 심볼릭 링크, ...) -perm [/|-] mode ; 권한 -user User /-group Group -size [+|-] Num ; 사이드, +num (num 이상), -num(num 이하) -atime [+|-] Num ; 파일 접근시간 -mtime [+|-] Num ; 파일 수정시간 -ctime [+|-] Num ; 속성 변화 [동작 옵션] -ls -exec Command {} \; -ok Command {} \; (대화형) |
예제:
find /tmp -name "dir*"
find . -type l
find /
실습하기
1. /root에서 find 명령어를 통해 파일명 앞부분에 “test” 문자열이 섞인 파일을 검색하면서 삭제하시오
[root@localhost ~]# find /root -name "test*" -exec rm -r {} \;
우선, find /root -name 'test*' 명령어로 test1, test2 파일이 존재하는 것 확인
이후, 삭제 명령이 포함된 find 명령어를 실행하면 파일 2개가 삭제된다.
2. /etc/group 파일을 찾아서 /root/ 디렉터리에 복사하시오.
[root@localhost ~]# find /etc -name "group" -type f -exec cp {} /root/ \;
3. /root/group 파일을 찾아서 삭제하시오.(단 대화형으로)
[root@localhost ~]# find /root -name "group" -type f -ok rm {} \;
4. /etc 에서 파일 크기가 8K 이하인 파일 찾아서 자세하게 출력하시오.
[root@localhost ~]# find /etc -size -8k -ls
5. /home 에서 소유자가 student인 파일(파일만) 찾아서 /root/에 복사하시오.(단 파일의 소유주와 소유그룹이 student로 남아 있도록 복사하시오.)
[root@localhost ~]# find /home -user student -type f -exec cp -ap {} /root/ \;
* 파일의 소유주와 소유그룹이 student로 남아 있도록 하기 위해서 cp 명령어의 옵션 중에서 -a 와 -p 을 사용해야 한다.
-a : 원본 파일의 속성, 링크 정보들을 그대로 유지하면서 복사한다.
-p : 원본 파일의 소유주 등 정보 보존하여 복사.
2) /down 디렉터리에 test1, test2 파일을 생성 하시오
3) /down 디렉터리에 있는 test1, test2 파일을 각각 test3, test4 파일로 /tmp 디렉토리에 복사하시오.
4) /down 디렉토리에 test 디렉터리를 생성하시오.
5) /down/test 디렉토리를 /tmp 디렉터리로 이동하시오.
6) /tmp에서 find 명령어를 통해 파일명 앞부분에 “test”문자열이 섞인 파일을 검색하면서 삭제하시오.
7. /etc/group 파일을 찾아서 /root/ 디렉터리에 복사하시오.
[root@localhost ~]# find /etc -name 'group' -type f -exec cp {} /root/ \;
8. /root/group 파일을 찾아서 삭제하시오.(단 대화형으로)
[root@localhost ~]# find /root -name "group" -type f -ok rm {} \;
9. /etc 에서 파일 크기가 1K 이하인 파일 찾아서 자세하게 출력하시오.
[root@localhost ~]# find /etc -size -1k -type f -ls
10.
/root/filea/에 /var/log를 복사해서 넣으시오.
cd ~
mkdir filea
cp -arp /var/log ~/filea/
1) 이름이 messages 인 파일을 찾으시오.
[root@localhost ~]# find filea/ -name "messages*" -print
2) 파일 타입이 디렉토리이며 사용자가 pcp 인 파일을 찾으시오.
[root@localhost ~]# find filea/ -user pcp -type d
3) 파일 크기가 8kbyte 이상인 파일을 검색해서 자세하게 출력하시오.
[root@localhost ~]# find filea/ -size +8k -ls
4) 파일명이 old 로 끝나는 파일을 찾아서 /root/로 이동시키시오.
[root@localhost ~]# find filea/ -name "*old" -type f -exec mv {} ./ \;
5) 파일명이 log로 끝나는 파일을 찾아서 대화형으로 삭제하시오.
[root@localhost ~]# find filea/ -name "*log" -type f -ok rm {} \;
6) log 디렉토리를 찾아서 삭제하시오.
[root@localhost ~]# find filea/ -name "log" -type d -exec rm -r {} \;