이름에 특정 문자가 포함된 파일 나열

이름에 특정 문자가 포함된 파일 나열

예를 들어 이름에 "a"가 포함되어 있는 것처럼 현재 있는 디렉터리의 모든 파일을 나열하고 싶습니다. 명령의 첫 번째 부분이 이라는 것을 알고 있지만 ls -l완료하는 방법을 모르겠습니다.

답변1

*및 를 포함한 glob 와일드카드를 읽어야 합니다 ?.

  • *0개 이상의 문자 일치
  • ?정확히 한 문자와 일치합니다.
  • [...]문자 집합 중 하나와 일치합니다(예: , , 중 하나 [abc]와 일치 ) .abc

따라서 자신의 파일 이름이 포함된 모든 파일 이름을 찾으려면 abcglob 을 사용하십시오 *abc*. 이 목록은 원하는 곳 어디에서나 사용할 수 있습니다.

ls *abc*
rm -i *abc*
echo *abc*

그러나 명령줄이 실행되었습니다.뒤쪽에확장. (명령이 아닌 확장을 수행하는 셸입니다.) 따라서 이와 같은 파일 이름이 있는 경우 -abc확장으로 인해 파일 이름 인수 없이 플래그 세트가 구문 분석 ls *abc됩니다 . 현재 디렉터리에 대한 명시적 경로를 강제하기 위해 와일드카드 확장 앞에 접두사를 추가하여 이 문제를 해결했습니다.ls -abcls-labc./

ls ./*abc*
rm -i ./*abc*
echo ./*abc*

참고 ls하세요콘텐츠디렉터리 이름 자체 대신 디렉터리 이름이 나열됩니다. 버전 -d에서 지원 하는 경우 플래그를 사용하여 이 문제를 해결하세요 .-qls

ls -dq ./*abc*

관련 정보