$ 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
Isso dá o nome de todos os arquivos executáveis que começam com letra l
e /usr/bin
diretório /bin
.
Se eu ,
mudar de posição, recebo resultados que não entendo. Por exemplo, consulte a captura de tela abaixo.
$ 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
Igual ao anterior (a ordem da lista foi alterada), mas usr
está ausente.
$ 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
Estes são os arquivos presentes apenas em /bin com /
prefixo extra com cada entrada.
Por favor, explique que tipo de encantamento está sendo executado por ,
.
As chaves são substituídas por cada uma das strings entre as vírgulas, então
X{,a,b}Y
é expandido paraXY XaY XbY
, então seu/{usr,/}bin/l
é expandido para/usrbin/l* /bin/l*
, e não/usr/bin/l*
como você espera.