9장. 파일 찾기: 찾기, 위치 찾기, 위치 지정하기
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
파일 시스템 전체에서 파일을 얼마나 쉽게 검색할 수 있나요?
처음 몇 개의 파일을 만들 때는 파일 이름과 보관 위치를 기억하는 것만으로도 충분히 쉬웠을 것입니다. 그러다가 파일이 많아지자 하위 디렉터리(또는 GUI 용어로 폴더 )를 만들어 파일을 관련 그룹으로 묶었습니다. 곧 하위 디렉터리 안에 하위 디렉터리가 생기면서 이제는 어디에 파일을 넣었는지 기억하기 어려워졌습니다. 물론 디스크가 점점 더 커지면서 파일을 계속 만들고 삭제하지 않는 것이 점점 더 쉬워지고 있습니다(일부 사람들에게는 나이가 들면서 이런 것도 도움이 되지 않습니다).
그렇다면 지난주에 편집했던 파일은 어떻게 찾을 수 있을까요? 아니면 하위 디렉터리에 저장한 첨부파일(당시에는 논리적인 선택으로 보였죠)을 어떻게 찾나요? 아니면 파일 시스템이 MP3 파일로 어지럽게 흩어져 있어서 모두 정리하고 싶을 수도 있습니다.
파일 검색에 도움이 되는 그래픽 인터페이스를 제공하기 위해 다양한 시도가 이루어지고 있으며, 이는 모두 훌륭하고 좋은 일이지만 GUI 스타일의 검색 결과를 다른 명령의 입력으로 어떻게 사용할 수 있을까요?
bash와 GNU 도구가 도움이 될 수 있습니다. 이 도구들은 파일 이름, 생성 또는 수정 날짜, 심지어 내용까지 검색할 수 있는 매우 강력한 검색 기능을 제공합니다. 검색 결과는 표준 출력으로 전송되어 다른 명령이나 스크립트에서 사용하기에 완벽합니다.
더 이상 궁금해하지 마세요. 필요한 정보가 여기 있습니다.
9.1 모든 MP3 파일 찾기
문제
파일 시스템 전체에 MP3 오디오 파일이 흩어져 있습니다. 이 파일들을 모두 한 곳으로 옮겨서 정리한 다음 음악 플레이어로 복사하고 싶습니다.
솔루션
찾기 유틸리티는 이러한 파일을 모두 찾은 다음 명령을 실행하여 원하는 위치로 파일을 옮길 수 있습니다. 예를 들어
find . -name '*.mp3' -print -exec mv '{}' ~/songs \;
토론
찾기 유틸리티의 구문은 다른 유닉스 도구의 구문과 다릅니다. 대시와 한 글자 컬렉션을 앞에 두고 그 뒤에 여러 단어의 인수를 사용하는 일반적인 방식으로 옵션을 사용하지 않습니다. 오히려 옵션은 짧은 단어처럼 보이며, 어떤 파일을 찾을지, 파일을 찾았을 때 무엇을 할지를 논리적으로 설명하는 순서로 정렬되어 있습니다. 이러한 단어와 같은 옵션을 술어라고 부르기도 합니다.
find 명령의 첫 번째 인수는 검색할 디렉터리입니다. 일반적으로는 단순히 (.)로 현재 디렉터리를 지정하지만, 전체 디렉터리 목록을 제공하거나 파일 시스템의 루트(/)를 시작점으로 지정하여 전체 파일 시스템을 검색할 수도 있습니다(권한이 허용되는 경우).
이 예제에서 첫 번째 옵션( -name 술어)은 검색할 패턴을 지정합니다. 이 구문은 bash 패턴 매칭 구문과 유사하므로 *.mp3 은 ".mp3" ...