Search
Duplicate
📒

[Linux CLI] 03-2. 파일 시스템 - 검색, 수정 명령어

상태
완료
수업
Linux
주제
Linux CLI
4 more properties
참고

파일 시스템 검색 명령어

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 까지 숫자 중 하나에 매칭
[^문자..]
문자를 제외하고 매칭시킨다.