find
파일 이름의 전체나 파일 이름의 일부로 검색
1
find . -name "*[파일 이름]*"
파일 경로에서 매칭되는 것을 검색
1
2find . -path "*[파일 경로]*"
find . -path "*[파일 경로]/[파일 이름]*"파일 유형으로 검색
1
2
3find . -type f # 일반 파일 검색
find . -type d # 디렉토리 검색
find . -type l # 심볼릭 링크 검색파일 크기 기준으로 검색
1
find . -size +300k # 크기가 300k 이상인 파일 검색
파일 생성(수정) 시간 기준으로 검색
1
2find . -ctime +1 # 하루 이전에 생성(수정)된 파일 검색
find . -ctime -1 # 하루 이내에 생성(수정)된 파일 검색특정 파일보다 더 나중에 생성(또는 수정)된 파일을 검색
ex) 어떠한 작업을 한 후 이로 인해 변경된 파일이 무엇이 있는지 찾아볼 때 이용1
find . -newer a.txt # a.txt 파일보다 더 나중에 생성 또는 수정된 파일을 검색
특정 파일보다 더 이전에 생성(또는 수정)된 파일을 검색
1
find . ! -newer a.txt
위의 옵션들을 and, or 연산자로 묶어서 검색
1
2
3find . -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
2grep "[검색할 키워드]" [파일 이름]
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
2grep -v "[제외할 키워드]" [파일 이름] > [새 파일 이름]
ex) grep -v "bye" hello_world.txt > hello_world2.txt
sed
특정 파일에서 특정 단어를 바꾸거나, 어떤 라인만 삭제할 때
1
2
3
4sed "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
2sed -i "s/[from_str]/[to_str]/g" [파일 이름]
sed -i "/[pattern]/d" [파일 이름]
https://sinjin0.medium.com/알아두면-가끔은-유용할-리눅스-명령어-f46eb08eba1f