일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- github
- 르세라핌
- JPA
- jetbrain
- visual studio code
- ANTIFRAGILE
- UNION ALL
- Jenkins
- EntityManager
- ci/cd
- spring
- JPQL
- 오블완
- 명령어
- git branch 삭제
- java
- analytics4
- pat발급
- IntelliJ
- gtihub
- git pat
- 자동배포
- 애널리틱스4
- Python
- db종류
- TIOBE
- 티스토리챌린지
- docker
- MariaDB
- Today
- Total
hanker
Linux - 서버 내 파일 및 디렉터리 찾기 (find 명령어) 본문
서버 내에 무언가 설치를 했는데 대체 이 파일이 어디있는건지, 환경 설정해주는 파일은 어디로 갔는지..
File/Directory 찾는 방법에 대해서 알아보자
find 명령어
find 명령어 역할
find 명령어는 리눅스에서 파일 및 디렉터리를 검색하는 매우 유용한 도구이다.
다양한 옵션과 함께 사용하여 파일의 이름, 타입, 생성 날짜, 소유자, 크기 등을 기준으로 파일을 찾을 때 사용한다.
사용방법
find [경로] [조건]
- 경로: 검색할 디렉터리의 경로를 지정 (생략가능 : 생략하면 현재 디렉터리에서 검색)
- 조건: 파일 이름, 유형, 크기, 소유자 등의 검색 조건을 지정
1. 파일 이름으로 검색
- 파일 이름을 기준으로 검색할 때는 -name 또는 -iname 옵션을 사용 (iname은 대소문자를 구분하지 않는다)
▷ name : 대소문자 구분 O
▷ iname : 대소문자 구분 X
find -name "파일명"
find -iname "파일명"
2. 파일 유형으로 검색
파일의 유형을 기준으로 검색할 수 있다.
-type 옵션을 사용한다.
▷ f : 파일
▷ d : 디렉터리
▷ l : 심볼릭링크
find ./ -type f # 현재 경로에서 파일 찾기
find ./ -type d # 현재 경로에서 디렉터리 찾기
find ./ -type l # 현재 경로에서 심볼릭링크 찾기
3. 크기로 검색
파일의 크기를 기준으로 검색할 때는 -size 옵션을 사용한다.
크기의 단위를 함께 지정해야 한다.
▷ c : 바이트
▷ k : 킬로바이트
▷ M : 메가바이트
▷ G : 기가바이트
find ./ -size +500k # 현재 경로에서 파일크기가 500KB보다 큰 파일 검색
find ./ -size -500k # 현재 경로에서 파일크기가 500KB보다 작은 파일 검색
4. 날짜 기준 검색
파일이 생성되거나 수정된 날짜를 기준으로 검색할 수 있다.
▷ -mtime: 마지막으로 수정된 지 몇 일 지났는지 기준으로 검색 (n일 전)
▷ -atime: 마지막으로 접근한 지 몇 일 지났는지 기준으로 검색
▷ -ctime: 마지막으로 변경된 지 몇 일 지났는지 기준으로 검색
find ./ -mtime -3 # 현재 경로에서 3일 이내 수정된 파일 검색
find ./ -atime +1 # 현재 경로에서 1일 이상 접근하지 않은 파일 검색
find ./ -ctime -3 # 현재 경로에서 3일 이내 변경된 파일 검색
5. 소유자 및 권한으로 검색
파일의 소유자 또는 권한을 기준으로 검색할 수 있다.
▷ -user: 특정 소유자의 파일 검색
▷ -group: 특정 그룹의 파일 검색
▷ -perm: 파일 권한을 기준으로 검색
find ./ -user hanker # 현재경로에서 소유자가 hanker인 파일 검색
find ./ -group root # 현재경로에서 소속그룹이 root인 파일 검색
find ./ -perm 777 # 현재경로에서 파일 권한이 777인 파일 검색
6. 조건에 따른 작업 수행
-exec 옵션을 사용하여 검색된 파일에 대해 명령을 수행할 수 있다.
명령어 끝에는 \; (역슬래시 + 세미콜론) 를 붙여야 한다.
find ./ -type f -exec chmod 777 {} \; # 현재경로의 파일들의 파일 권한을 777로 변경
find ./ -type f -name "*.txt" -exec rm {} \; # 현재경로에서 확장자가 txt인 파일들을 삭제
7. 여러 조건 조합
find 명령어는 여러 조건을 AND/OR로 조합할 수 있다.
▷ -a 또는 생략: AND 조건
▷ -o: OR 조건
find ./ -type f -size +1M -name "*.jar" # 현재경로에서 1MB 이상의 jar파일 찾기
find ./ -type f -name "*.jar" -o -name "*.log" # 현재경로에서 확장자가 jar OR log 인 파일 찾기
8. 심볼릭 링크 무시하기
심볼릭 링크를 무시하고 실제 파일만 검색하려면
▷ -P : 심볼릭 링크 무시
▷ -L : 심볼릭 링크 무시 X
find -P ./ # 현재경로에서 심볼릭 링크를 링크처리하지 않고 파일로 인식하여 검색
find -L ./ # 현재경로에서 심볼릭 링크내부 파일들도 검색
9. 검색 깊이 제한
-maxdepth와 -mindepth 옵션을 사용하여 검색 깊이를 제한할 수 있다. (옵션을 사용하지 않으면 전체 검색)
▷ -maxdepth n: 최대로 검색할 하위 디렉터리 깊이
▷ -mindepth n: 최소로 검색할 하위 디렉터리 깊이
find ./ -maxdepth 2 -type d # 현재경로에서 하위 2단계까지 디렉터리 검색
find ./ -mindepth 2 -type d # 현재경로에서 하위 2단계부터 디렉터리 검색
10. 특정 패턴 제외하고 검색
-not 옵션을 사용하여 특정 패턴을 제외하고 검색할 수 있다.
find ./ -type f -not -name "*.log" # 현재경로에서 확장자가 log인 파일을 제외한 모든 파일 검색
마치며
- 파일 이름, 유형, 크기, 날짜, 소유자, 권한 등 다양한 조건을 통해 파일 검색
- -exec 옵션을 사용하여 검색된 파일에 대해 작업을 자동으로 수행
- 여러 조건을 조합하여 더욱 세밀하게 검색
설명보다 예제 만드는게 힘들다.
끝.
'SERVER > Linux' 카테고리의 다른 글
Linux - 파일 및 디렉터리 삭제 명령어 (rm 명령어) (2) | 2024.11.13 |
---|---|
Linux 서버 초기 설정 시 기본 명령어 관련 패키지 설치 가이드 (command not found) (1) | 2024.10.28 |
Linux - 디렉터리 및 파일의 소유권 변경 change owner (chown 명령어) (1) | 2024.10.22 |
Linux - Command Log 확인 (1) | 2024.10.02 |
linux - 네트워크 상태 확인 (netstat - 명령어) (0) | 2024.09.28 |