쉘 와일드카드 일치 파일이 없습니다.

쉘 와일드카드 일치 파일이 없습니다.

나는 종종 쉘 파일 이름 글로빙을 사용하여 all , /dev/sda등에 대한 작업과 같은 작업을 수행합니다 . 그러나 이는 디스크에 존재하는 패턴과 일치하는 파일에 의존합니다. 오늘은 각각 등에서 실행 하고 싶었지만 디스크에 패턴과 일치하는 파일 이름 이 없기 때문에 작동하지 않았습니다./dev/sdb/dev/sdc/dev/sd[a-f]gitkmaster@{1}master@{2}gitk master@{[1-5]}

실제 디스크 파일에 관계없이 쉘이 글로빙을 수행하도록 하려면 어떻게 해야 합니까?

답변1

일치하는 파일이 없으면 쉘 글로빙이 불가능합니다. 당신은해야합니다버팀대 확장:

gitk master@{{1..5}}

또는:

gitk master@{{1,2,3,4,5}}

양식은 나중에, 나중에, 나중에 {x..y}필요합니다 .zsh 2.6-beta4bash 3.0ksh93r

{x,y}처음에는 cshBourne에 Shell First로 복사되었습니다 ksh.

답변2

적어도 bash에서는 범위를 사용할 수 있습니다.

$ echo gitk master@{{1..5}}
gitk master@{1} master@{2} master@{3} master@{4} master@{5}

분명히 echo는 무슨 일이 일어나고 있는지 보여주기 위해 위에서 사용되었습니다.

문자에도 작동합니다.

$ echo /dev/sd{x..z}
/dev/sdx /dev/sdy /dev/sdz

참고: 이는 전역 일치와 정규식 일치입니다. 이것은 두 가지 다른 것입니다. 글로벌 매칭을 위한 쉘. 그래서쉘 정규식 와일드카드별거 아닙니다.

관련 정보