참고
파일 시스템 검색 명령어
ls (파일 확인)
NOTE
ls [경로] # 경로의 파일리스트 출력
ls [경로] -al # a(모든 파일 .시작), l(전체 파일에 대한 정보를 리스트로 보여줌)
ls [경로] -R # -R 경로의 하위구조를 모두보여줌
ls [경로] -d # 디렉토리만
ls [경로] -l | grep '^-' # 파일만
ls [경로] -p | grep / # p(디렉토리 /표시)
ls -lt # t(파일 마지막 수정기준 정렬)
ls -ltu # u(t와 사용시 접근시간 기준 정렬)
ls -ltc # c(ctime(마지막 메타데이터 수정, 파일위치나 권한 변경시점), 정렬)
ls -lr # r(알파벳 역순 정렬, 없으면 기본정렬)
ls -lX # X(확장자 정렬)
ls -ls # s(작은 파일부터)
ls -lS # S(큰 파일부터)
ls -lh # h(1024단위 K, M 사용)
ls --color=[no, yes, auto] # 파일 색상지정
ls --format=[verbose, commas] # 출력 형식
ls -l --time-style=[locale, iso, full-iso) # 시간 포맷
ls -al --author # author(파일 작성자)
ls -ald # d(디렉토리만)
ls -alR # R(모든 하위 폴더까지)
ls -alr # r(목록을 역순으로)
ls -1Q # 1(짧은 형식), Q(""감싸줌)
Bash
복사
find (파일 & 폴더 검색)
NOTE
# find [경로] [옵션] [표현식]
find # 현재 디렉토리 출력
find -print0 # 현재 디렉토리의 내용을 줄 바꿈 없이 출력
find . -empty # 현재 경로 하위에서 빈 디렉터리 혹은 크기가 0인 파일 검색
find /path # /path에 있는 파일 및 디렉터리 표시
find . -name [filename] # 현재 디렉토리 아래 모든 파일 및 디렉토리 검색
find ~ -name [filename] # 사용자의 홈디렉터리 하위에서 파일이름 검색
find . -iname "*.jpg" # -iname 대소문자 구별안함
find . -name "STR*" # 지정된 문자열로 시작하는
find . -name "*STR*" # 지정된 문자열이 포함된
find . -name "*STR" # 지정된 문자열로 끝나는 파일
find . -name ".txt" # .txt 파일이름으로 끝나느 파일 검색
find . -name "file1" -a -mtime 0 # a(and), 기본으로 적용됨
find . -name "file1" -o -name "file2" # o(or)
find . ! -name "file1" # !(not)
find . -name build -type f # build 이름의 일반 파일
find . -name PROJ -type d # PROJ 이름의 디렉토리
find . -size 1024c # 파일크기 1024 (c, k를 붙임으로서 바이트, 킬로바이트 표현)
find . -size +1024c # 파일크기 1024 초과
find . -size -1024c # 파일크기 1024 미만
find . -size +1024 -size -2048c # 1024~2048
find . -user username # 특정 소유가
find . -perm 444 # 444권한의 파일
find . -mtime 0 # mtime(수정시간), 수정된지 1일이내
find . -atime +1 # atime(접근시간), 접근한지 1일 이상, +이면 오래된 것
find . -cmin +60 # ctime(변경시간), 변경한지 1시간 이내, -이면 이내의 것
find . -name "*.log" \ # 30일보다 오래된 로그파일 제거,
-mtime +30 -exec rm {} \ # {}는 find에서 찾아진 파일로 대체됨, \(exec 종료)
find . -name "*.sh" \ # .sh 모든파일 x부여
-exec chmod +x {} \
find . -name -type f # 특정경로의 파일을 모두 복사
-exec cp {} /destination \;
find . -type f # \; 각 라인마다
-exec echo {} \;
find . type f # + 한번만 적용
-exec echo +
Bash
복사
locate (파일 검색)
NOTE
find와 달리 파일명으로 빠르게 검색이 가능해진다. (검색DB를 미리 생성하기 때문)
# locate [옵션] [파일 이름]
locate example.txt # 파일 찾기
locate -i example.txt # i(대소문자 무시)
locate example.txt | head -n 5 # 처음 5개 결과만
locate *.png # 확장자를 가진 모든 파일
Bash
복사
file (파일타입 검사)
NOTE
파일의 유형을 알려주는 명령어이다!
# 존재하지 않는 파일명이면 생성, 있는 파일명이면 최근 사용시간을 변경
file [파일경로]
# -z 압축된 파일의 유형을 표시한다.
file -z [파일명]
Bash
복사
•
확장자명이 아닌, 파일 시스템, 매직 테스트 등 여러 테스트로 어떤 파일인지 판단한다.
regex (정규식)
NOTE
특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 언어!
grep "[abc]" data.txt # a,b,c 를 포함하는 라인 찾기
sed 's/apple/orange' file.txt # apple -> orange
Bash
복사
기본 정규식 표현식
•
.
◦
싱글 와일드카드
•
*
◦
와일드 카드
•
^[문자]
◦
문자열의 시작을 나타냄
•
[문자]$
◦
문자열의 종료를 나타냄
간격 정규 표현식
•
[문자..]
◦
대괄호 속에 넣은 문자 중 하나에 매칭
•
[0-9], [A-Z]
◦
0~9, A~Z 까지 숫자 중 하나에 매칭
•
[^문자..]
◦
문자를 제외하고 매칭시킨다.