find

  • 파일 이름의 전체나 파일 이름의 일부로 검색

    1
    find . -name "*[파일 이름]*"
  • 파일 경로에서 매칭되는 것을 검색

    1
    2
    find . -path "*[파일 경로]*"
    find . -path "*[파일 경로]/[파일 이름]*"
  • 파일 유형으로 검색

    1
    2
    3
    find . -type f # 일반 파일 검색
    find . -type d # 디렉토리 검색
    find . -type l # 심볼릭 링크 검색
  • 파일 크기 기준으로 검색

    1
    find . -size +300k # 크기가 300k 이상인 파일 검색
  • 파일 생성(수정) 시간 기준으로 검색

    1
    2
    find . -ctime +1 # 하루 이전에 생성(수정)된 파일 검색
    find . -ctime -1 # 하루 이내에 생성(수정)된 파일 검색
  • 특정 파일보다 더 나중에 생성(또는 수정)된 파일을 검색
    ex) 어떠한 작업을 한 후 이로 인해 변경된 파일이 무엇이 있는지 찾아볼 때 이용

    1
    find . -newer a.txt # a.txt 파일보다 더 나중에 생성 또는 수정된 파일을 검색
  • 특정 파일보다 더 이전에 생성(또는 수정)된 파일을 검색

    1
    find . ! -newer a.txt
  • 위의 옵션들을 and, or 연산자로 묶어서 검색

    1
    2
    3
    find . -name "*[파일 이름]*" -a -type f -a ! -newer a # and 조건 예시 1
    find . -name "*[파일 이름]*" -type f ! -newer a # and 조건 예시 2
    find . -name "*[파일 이름]*" -o -type f -o ! -newer a # or 조건

tail

  • 텍스트 파일의 끝 부분 내용을 확인할 때

    1
    tail [파일 이름]
  • 표시할 라인 수를 지정

    1
    tail -n 30 [파일 이름] # 파일 내 마지막 30 line 출력
  • 파일 끝 부분 내용을 출력한 후 이후 추가된 파일 내용을 계속 출력

    1
    tail -f [파일 이름] # 명령어가 끝나지 않고 계속 출력된다. Ctrl+c를 눌러 멈출 수 있다.

grep

  • 파일에서 어떠한 키워드를 검색

    1
    2
    grep "[검색할 키워드]" [파일 이름]
    ex) grep "hello" hello_world.txt
  • 몇 번 매칭이 되었는지만 횟수를 셀 때

    1
    grep -c "[검색할 키워드]" [파일 이름]
  • 검색된 키워드의 라인 수 표시

    1
    grep -n "[검색할 키워드]" [파일 이름]
  • 어느 파일에서 찾았는지 알고 싶을 때 파일명 표시

    1
    grep -H "[검색할 키워드]" *
  • 현재 및 하위 디렉토리 내 모든 파일에서 검색

    1
    grep -r "[검색할 키워드]" *
  • 검색한 키워드의 위, 아래 n번 줄에 해당하는 내용도 출력

    1
    grep -A 2 -B 3 "[검색할 키워드]" * # 검색된 라인의 앞 3라인, 뒤 2라인 표시
  • 특정 키워드를 제외할 때

    1
    grep -v "[제외할 키워드]" *
  • 특정 라인을 제거할 때

    1
    2
    grep -v "[제외할 키워드]" [파일 이름] > [새 파일 이름]
    ex) grep -v "bye" hello_world.txt > hello_world2.txt

sed

  • 특정 파일에서 특정 단어를 바꾸거나, 어떤 라인만 삭제할 때

    1
    2
    3
    4
    sed "s/[from_str]/[to_str]/g" [파일 이름] > [새 파일 이름] # from_str을 to_str로 치환하여 새로운 파일로 저장
    ex) sed "s/hello/hi/g" hello_world.txt > hello_world2.txt

    sed "[pattern]/d" [파일 이름] > [새 파일 이름] # pattern이 포함된 라인 삭제하여 새 파일로 저장
  • 수정하고자 하는 파일을 바로 수정

    1
    2
    sed -i "s/[from_str]/[to_str]/g" [파일 이름]
    sed -i "/[pattern]/d" [파일 이름]

https://sinjin0.medium.com/알아두면-가끔은-유용할-리눅스-명령어-f46eb08eba1f