bash 실패할 때 와일드카드를 통해 확장자가 없는 파일 이름을 선택하는 방법은 무엇입니까? 예를 들어
$ ls /source/c
m m.asm m.c m.d m-0 m-1
$ cp -ru /source/c/*. ~/Downloads/c
cp: cannot stat '/source/c/*.': No such file or directory
m m-0 m-1만 복사
도와주세요! 매우 행복합니다. 감사합니다.
답변1
점으로 구분된 파일 이름을 사용하지 않으려면 !(*.*)
대신 확장된 glob 표현식을 사용하세요 *.
.
cp -ru /source/c/!(*.*) ~/Downloads/c/
Bash에서는 extglob
옵션에 의해 제어되므로 오류가 발생하면 를 사용하여 켜야 합니다 shopt -s extglob
. 끄고 싶으면 를 사용하세요 shopt -u extglob
.
숨겨진 파일(필요함)을 복사하려는 경우 shopt -s dotglob
파일 이름을 제외할 수도 있습니다. 예를 들어 .bashrc
제외되는 것으로 간주될 수도 있습니다.확장하다(유닉스에서는 명확하게 정의되지 않은 개념):
cp -ru /source/c/!(?*.*) ~/Downloads/c/