리눅스의 강력한 bash 와일드 카드

강력한 bash 와일드 카드 – 2.0

쉘 와일드 카드 (shell wildcard)라고하는 멋진 것들이 없다면 리눅스 커맨드 라인에서 작업하는 것은 꽤 고통 스럽습니다. 와일드 카드를 잘 사용하도록하십시오.

쉘 와일드 카드 란 무엇입니까? >

와일드 카드 명령 줄을 GUI 파일 관리자보다 훨씬 강력하게 만드는 쉘 기능입니다. 그래픽 파일 관리자에서 큰 파일 그룹을 선택하려면 일반적으로 마우스로 선택해야합니다. 간단 해 보이지만 어떤 경우에는 매우 실망 스러울 수 있습니다. 예를 들어, 모든 종류의 파일과 하위 디렉토리가 엄청나게 많은 디렉토리가 있고 이름 중간에 "linux"라는 단어가있는 모든 HTML 파일을 해당 큰 디렉토리에서 다른 디렉토리. 이 작업을 수행하는 간단한 방법은 무엇입니까? 디렉토리에 서로 다른 이름의 HTML 파일이 많이 포함되어있는 경우 작업은 매우 간단합니다!

Linux CLI에서이 작업은 하나의 HTML 파일 만 이동하는 것처럼 간단하게 수행 할 수 있습니다. 셸 와일드 카드. 와일드 카드는 특정 문자 패턴과 일치하는 파일 이름을 선택할 수있는 특수 문자입니다. 이렇게하면 문자 몇 개만 입력해도 큰 파일 그룹을 선택할 수 있으며 대부분의 경우 마우스로 파일을 선택하는 것보다 쉽습니다.

다음은 bash에서 가장 일반적으로 사용되는 와일드 카드 목록입니다.

와일드 카드 매치
* 0 개 이상의 문자
? 정확히 한 문자
[에이 비 씨 디이] 정확하게 하나의 문자 목록
[ae] 주어진 범위의 정확히 한 문자
[!에이 비 씨 디이] 목록에없는 문자
[! ae] 지정된 범위에없는 문자
{debian, linux} 주어진 옵션에서 정확하게 하나의 전체 단어

파일 이름을 인수로 허용하는 명령에 와일드 카드를 사용할 수 있습니다.

 

와일드 카드 예제 >

몇 가지 예를 들어 보겠습니다. * 문자는 Linux뿐만 아니라 다른 많은 곳에서도 널리 사용되기 때문에 이미 익숙 할 것입니다. 예를 들어, 다음은 현재 디렉토리에서 모든 파일을 제거합니다.
rm *

다음 명령은 이름에 "linux"라는 단어가있는 모든 HTML 파일을 작업 디렉토리에서 이름이 지정된 디렉토리로 이동합니다. dir1:
mv *linux*.html dir1

여러 파일 이동은 하나의 파일 만 이동하는 것처럼 간단 할 수 있습니다.

다음은로 시작하는 모든 파일을 표시합니다. d 끝내다 .txt:
less d*.txt

다음 명령은 이름이로 시작하는 모든 파일을 제거합니다. junk.그 다음에 정확히 세 문자가옵니다.
rm junk.???

이 명령을 사용하면 이름이로 시작하는 모든 파일 또는 디렉토리를 나열합니다 hda, 정확히 하나의 숫자가 뒤 따른다.
ls hda[0-9]

여기에는 다음으로 시작하는 모든 파일 또는 디렉토리가 나열됩니다. hda, 정확하게 두 자리 숫자가 뒤 따른다.
ls hda[0-9][0-9]

다음은 이름이 둘 중 하나로 시작하는 모든 파일 또는 디렉토리를 나열합니다. hd or sd, 그 뒤에는 한 문자 씩 a 과 c:
ls {hd,sd}[a-c]

이 명령은 대문자로 시작하는 모든 파일을 디렉토리에 복사합니다. dir2:
cp [A-Z]* dir2

다음으로 끝나지 않는 모든 파일을 삭제합니다. ceh or g:
rm *[!cehg]

나는이 예제들을 계속해서 사용할 수 있지만 아이디어를 얻는다. 간단한 패턴을 사용하거나 다른 와일드 카드를 결합하여 매우 복잡한 패턴을 구성 할 수 있습니다. 앞에서 말했던 것처럼 파일 이름을 인수로 허용하는 명령과 함께 사용할 수 있습니다.