모든을 사용할 때 명령을 입력해야 하는 순서를 놓고 헤매고 grep
있습니다 find
. 경로를 언제 작성해야 하는지, 플래그를 언제 작성해야 하는지, 큰따옴표가 필요한지 등이 문제입니다.
나는 자랑스러워하는 것보다 더 많이 검색했습니다.
~을 위한grep
# Searching all files in the directory (recursively)
grep -rni "string" *
# Disecting it
command flags parameter path
-------------------------------
grep -rni "string" *
~을 위한find
# Searching for a file by name
find . -type f -name "file-name*"
# Disecting it
command path flag parameter flag parameter
-------------------------------------------
find . -type f -name "file-name*"
경로가 나타나는 시기와 플래그가 나타나는 시기 등을 기억할 수 있는 좋은 방법이 있습니까(매번 단순히 검색하는 대신)?
해결 시도 1: 매뉴얼 페이지
나는 이 매뉴얼 페이지를 좋아하지만 아마도 잘못 사용하고 있는 것 같습니다. 그것들은 상세하지만(좋습니다) 주어진 명령을 사용하는 방법에 대한 간단한 예를 얻으려면 매뉴얼 페이지에 문제가 있을 것입니다.
이라고 쓰면 man find
상단 근처에 다음과 같은 내용이 표시됩니다.
SYNOPSIS
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [starting-point...] [expression]
솔루션 시도 2: 자주 사용하는 코드 조각의 예 저장
또한 자주 사용하는 스니펫을 간단하게 저장하여 작업 예제를 빠르게 로드할 수도 있습니다.
그런데 다른 사람들은 여기서 무엇을 하고 있나요? 이것이 다른 사람에게는 직관적으로 보입니까?
답변1
grep을 실행해 보니 어떤 순서로 명령을 입력해야 하는지, 언제 경로를 작성해야 하는지, 언제 플래그를 작성해야 하는지, 큰따옴표가 필요한지 등을 고민하고 있었습니다.
명령의 일반적인 규칙은 다음과 같습니다. 옵션이 먼저 오고, 그 다음에는 한 번만 나타나는 "고정" 인수, 파일 이름과 같이 여러 번 나타날 수 있는 "가변" 인수가 옵니다.
grep
가지다하나모드 및 검색 가능많은문서. 그래서 그것은 "옵션, 모드, 파일"입니다. 여기에는 놀라운 일이 없습니다.
find
조금 이상합니다. 유일한 "실제" 매개변수는 재귀 검색을 시작할 위치를 설명하는 경로입니다. 다음은 연결(또는 추가 옵션)을 통해 결합할 수 있는 다양한 옵션을 통해 무엇을 일치시킬지 설명하고 다른 옵션으로 설명하는 작업을 설명하는 미니 언어입니다. 그래서 "디렉터리, 일치 옵션, 동작 옵션"입니다.
이 점을 명심하세요. 굳이 찾아볼 필요는 없습니다. 적어도 그것이 내가 그것들을 기억하는 방법입니다. (그리고 나는 아직도 가끔 man find
잊어버린 일치하는 옵션을 읽습니다.)