$ 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 中的文件/
,每个条目都带有 extra 作为前缀。
请说明正在施展什么样的魅力,
。
大括号被逗号之间的每个字符串替换,因此
X{,a,b}Y
扩展为XY XaY XbY
,因此您/{usr,/}bin/l
的扩展为/usrbin/l* /bin/l*
,而不是/usr/bin/l*
您似乎期望的那样。