제공된 패턴을 기반으로 폴더의 파일 이름을 나열하려면 어떻게 해야 합니까?

제공된 패턴을 기반으로 폴더의 파일 이름을 나열하려면 어떻게 해야 합니까?

입력한 키워드가 포함된 폴더의 모든 파일을 나열하는 명령을 찾으려고 합니다.

이거 해봤는데 grep -l아무것도 안 뜨네요

답변1

find /path/to/folder -type f -name "*key*"

위 명령은 모든 하위 디렉터리에서 파일을 검색합니다. 하위 디렉터리가 아닌 현재 디렉터리의 파일만 검색하려면 다음 명령을 사용합니다.

find /path/to/folder -maxdepth 1 -type f -name "*key*"

위 명령은 bash 쉘에만 적용됩니다.

답변2

ls명령은 파일 목록을 표시하는 데 사용됩니다. 셸은 패턴과 일치하는 파일을 나열하는 다양한 옵션을 제공합니다. 예를 들면 다음과 같습니다.

  • "a"로 시작하는 모든 파일을 나열합니다.ls a*
  • ".txt"로 끝나는 모든 파일을 나열합니다.ls *.txt
  • "x"로 시작하고 ".sh"로 끝나는 모든 파일을 나열합니다.ls x*.sh

더 많은 흥미로운 모드가 있습니다. 자세히 알아보려면 man bash"/" 키를 눌러 검색한 man bash다음 "Pattern Matching"이라는 텍스트를 입력하고 Enter를 눌러 관련 섹션으로 이동할 수 있습니다.

답변3

set ./*keyword*
[ -e "$1" ] || shift
printf "${1+%s\n}" "$@"

다음을 포함하는 현재 디렉토리의 모든 파일 목록을 인쇄합니다.*keyword* (하지 않음 .). 그러나 더 중요한 것은 쉘의 위치 배열을 파일 이름으로 설정한다는 것입니다. 따라서 이러한 파일이 존재하는 경우 "$1"등에서 개별적으로 참조할 수 있으며 "$2", 전체 내용은 에서 참조 할 수 있습니다 "$#".

관련 정보