"트리"가 파일을 찾지 못하는 것에 대해 혼란스러워함

"트리"가 파일을 찾지 못하는 것에 대해 혼란스러워함

마지막은 왜?나무그것을 찾을 수 없었다시스템 테이블?

tree /etc -P fstab --prune
/etc
└── fstab    
0 directories, 1 file

.

tree /etc -P fsta* --prune
/etc
└── fstab
0 directories, 1 file    

.

tree /etc -P *stab --prune
/etc
└── fstab    
0 directories, 1 file

여기서 무슨 일이 일어나고 있는 걸까요? 내 이해에 따르면 그것은 발견되어야합니다적어도 fstab

tree /etc -P *sta* --prune   
/etc
0 directories, 0 files

답변1

명령줄에서 따옴표 없이 와일드카드 패턴을 사용하면 쉘은 이를 파일 이름과 일치시키려고 시도합니다. 패턴과 일치하는 파일 이름이 없으면 대부분의 쉘은 패턴을 확장되지 않은 상태로 둡니다( zsh기본적으로 문제가 있는 경우 bash) set -u.

분명히 이름이 일치하는 일부 파일이 있지만 또는 *sta*은(는) 없습니다 . shell은 파일 이름으로 확장됩니다. 이는 패턴이 더 이상 .fsta**stab*sta*fstab/etc

해결책은 패턴 주위에 작은따옴표나 큰따옴표를 사용하는 것입니다(그리고 tree내부적으로 자체 패턴 일치를 수행하도록 합니다).

관련 정보