$ ls -ltr /{,usr/}bin/l*|tail -4
-r-xr-xr-x 1 root bin 31544 Dec 20 2017 /usr/bin/login
-r-xr-xr-x 1 root bin 31544 Dec 20 2017 /bin/login
lrwxrwxrwx 1 root root 15 Aug 28 2018 /usr/bin/libpng-config -> libpng12-config
lrwxrwxrwx 1 root root 15 Aug 28 2018 /bin/libpng-config -> libpng12-config
l
이는 in /usr/bin
및 디렉토리 문자로 /bin
시작하는 모든 실행 파일의 이름을 제공합니다.
위치를 바꿔 플레이하면 ,
이해할 수 없는 결과가 나옵니다. 예를 들어 아래 스크린샷을 참조하세요.
$ ls -ltr /{,usr,/}bin/l*|tail -4
/usrbin/l*: No such file or directory
-r-xr-xr-x 1 root bin 31544 Dec 20 2017 /bin/login
-r-xr-xr-x 1 root bin 31544 Dec 20 2017 //bin/login
lrwxrwxrwx 1 root root 15 Aug 28 2018 /bin/libpng-config -> libpng12-config
lrwxrwxrwx 1 root root 15 Aug 28 2018 //bin/libpng-config -> libpng12-config
위와 동일하지만(목록 순서가 변경됨) usr
누락되었습니다.
$ ls -ltr /{usr,/}bin/l*|tail -4
/usrbin/l*: No such file or directory
-rwxr-xr-x 1 root other 2286 Jun 15 2017 //bin/libpng14-config
-r-xr-xr-x 1 root bin 28608 Oct 20 2017 //bin/ldaplist
-r-xr-xr-x 1 root bin 31544 Dec 20 2017 //bin/login
lrwxrwxrwx 1 root root 15 Aug 28 2018 //bin/libpng-config -> libpng12-config
이는 /bin에만 존재하는 파일이며 /
각 항목에는 추가 접두사가 있습니다.
어떤 매력을 발산하고 있는지 설명해주세요 ,
.
답변1
중괄호는 쉼표 사이의 모든 문자열로 대체되므로 예상한 것과는 다르게 your 가 X{,a,b}Y
로 확장됩니다 .XY XaY XbY
/{usr,/}bin/l
/usrbin/l* /bin/l*
/usr/bin/l*
/{,usr/}bin/l* #-> /[]bin/l* /[usr/]bin/l*
/{,usr,/}bin/l* #-> /[]bin/l* /[usr]bin/l* /[/]bin/l*
/{usr,/}bin/l* #-> /[usr]bin/l* /[/]bin/l*