리눅스 시스템을 사용하면서 사용자가 원하는 파일이 디렉터리 트리에서 어디에 위치하는지 찾아야 할 때가 있다.
이때 이름이 일부라도 알고 있다면 locate 명령을 사용할 수 있다.
또 파일이 가지고 있는 속성(이름, 크기, 수정 시간, 소유자 등)을 기준으로 찾으려면 find 명령을 사용할 수 있다.
만약 텍스트 파일 안에 존재하는 특정 문자열을 찾아 편집해야 할 때는 grep 명령을 사용하면 효율적으로 작업할 수 있다.
이름으로 파일 찾기 : locate
형식 : locate [options] pattern
locate 명령은 데이터베이스에 존재하는 파일 or디렉터리의 이름이 주어진 문자열 패턴을 포함한다면 해당 파일 or디렉터리의 이름을 출력한다.
locate 명령의 좋은 점은 전체 파일 시스템을 검색하지 않고 데이터베이스를 검색하기 때문에 빠르다는 것이다.
물론 데이터베이스가 업데이트된 이후에 만들어진 파일이나 데이터베이스에 저장되지 않는 파일은 검색 할 수 없다.
데이터베이스를 업데이트하려면 updatedb 명령을 수행하면되는데 root사용자만 가능하다.
일반 사용자가 파일 시스템에서 접근할 수 없는 파일이 있다면 해당 데이터베이스에서도 검색할 수 없다.
권한을 갖지 않는 디렉터리를 검색할 때는 수많은 오류가 발생되는데 표준 오류 출력을 2> /dev/null 명령으로 출력을 버릴 수 있다.
조건으로 찾기: find
파일 시스템에서 파일을 검색하는 가장 좋은 방법은 find 명령을 사용하는 것이다.
파일을 검색할 때 검색 위치를 지정할 수 있으며 이름, 소유자, 접근권한, 크기, 수정시간 등의 파일 속성을 조건으로 사용할 수 있다.
형식 : find [pathnames] [expression]
경로를 지정하지 않으면 현재 디렉터리를 의미하는 .가 기본으로 주어지며 조건이나 expression이 주어지지 않으면 -print가 주어진다 -print는 경로와 함께 검색된 파일의 이름을 라인 단위로 출력한다.
find의 강력한 기능은 찾은 파일이 출력되므로 해당 결과를 이용하여 다른 명령의 입력값으로 보낼 수도 있으며 조건같의 논리 연산 또한 가능하다. 별도로 지정하지 않으면 and연산자가 사용된다.
파일의 내용 검색하기 : grep
파일에서 패턴과 상응하는 특별한 단어나 문자열을 포함하는 라인을 찾아 출력할 때 grep 명령을 사용한다.
형식: grep [options] parttern [files]
여기서 pattern은 찾으려는 문자열을 표현하는 것인데 정규표현식을 사용할 수 있다.
'Linux' 카테고리의 다른 글
[Linux] 파티션 관리 (0) | 2020.11.18 |
---|---|
[Linux] 마운트와 언마운트 (0) | 2020.11.18 |
vi 명령어 (0) | 2020.11.17 |
[Linux] 서비스의 실행과 종료 (0) | 2020.11.17 |
[Linux] 운영체제의 부팅 (0) | 2020.11.17 |
댓글