파일 목록 명령 ls에서 여러 패턴을 일치시키나요? [복사]

파일 목록 명령 ls에서 여러 패턴을 일치시키나요? [복사]

내 디렉토리에 많은 파일이 있습니다. 이름에 "abc" 및 "xyz"가 포함된 파일을 나열, 복사 또는 이동하고 싶습니다. 패턴 일치에 AND를 사용하는 방법은 무엇입니까?

일반 명령: ls *abc* *xyz*OR에만 사용됩니다.

답변1

이 방법을 사용하십시오.

ls *abc*xyz* *xyz*abc*

in mv또는을 사용하면 와일드카드를 사용하여 파일을 찾고 복사/이동하려는 파일 이상의 것을 가질 수 있으므로 cp옵션을 사용하여 대상 디렉터리를 지정하기만 하면 됩니다 .-t

cp -t /path/to/dest *abc*xyz* *xyz*abc*

또는 find다음과 같은 것을 사용하십시오:

find \( -name '*abc*' -a -name '*xyz*' \)

이는 find -name '*abc*' -name '*xyz*'에 문서화된 것과 동일 합니다.man find:

식 1 식 2
한 줄에 있는 두 표현식은 암시적 "and"로 연결된 것으로 간주됩니다.식 2다음과 같은 경우 평가되지 않습니다.식 1가짜입니다.

식 1-ㅏ식 2
그것은 같은식 1 식 2.

식 1-그리고식 2
그것은 같은식 1 식 2이지만 POSIX와 호환되지 않습니다.

-exec ...위 명령에 추가하여 찾은 파일로 원하는 작업을 수행 할 수 있습니다 .

find \( -name '*abc*' -a -name '*xyz*' \) -exec do-stuffs {} +

관련 정보