Иногда ls
будет префикс имени файла с именем папки, в других случаях это не будет. Следующее, что вы можете дублировать на вашей платформе:
$ ls /var/lib/initramfs-tools
4.10.10-041010-generic 4.4.0-78-generic 4.8.17-040817-generic
4.10.17-041017-generic 4.4.0-89-generic 4.9.0-040900-generic
4.11.12-041112-generic 4.4.33-040433-generic 4.9.21-040921-generic
4.11.3-041103-generic 4.4.8-040408-generic 4.9.40-040940-generic
4.11.9-041109-generic 4.6.3-040603-generic 4.9.8-040908-generic
4.12.0-041200-generic 4.7.5-040705-generic 4.9.9-040909-generic
4.12.4-041204-generic 4.8.12-040812-generic
$ ls /boot/vml*
/boot/vmlinuz-4.10.10-041010-generic /boot/vmlinuz-4.4.8-040408-generic
/boot/vmlinuz-4.10.17-041017-generic /boot/vmlinuz-4.6.3-040603-generic
/boot/vmlinuz-4.11.12-041112-generic /boot/vmlinuz-4.7.5-040705-generic
/boot/vmlinuz-4.11.3-041103-generic /boot/vmlinuz-4.8.12-040812-generic
/boot/vmlinuz-4.11.9-041109-generic /boot/vmlinuz-4.8.17-040817-generic
/boot/vmlinuz-4.12.0-041200-generic /boot/vmlinuz-4.9.0-040900-generic
/boot/vmlinuz-4.12.4-041204-generic /boot/vmlinuz-4.9.21-040921-generic
/boot/vmlinuz-4.4.0-78-generic /boot/vmlinuz-4.9.40-040940-generic
/boot/vmlinuz-4.4.0-89-generic /boot/vmlinuz-4.9.8-040908-generic
/boot/vmlinuz-4.4.33-040433-generic /boot/vmlinuz-4.9.9-040909-generic
Мне нравится формат первой версии, который не включает префикс каталога initramfs-tools/
. Я чувствую, что вторая версия, где добавляется boot/
в качестве префикса, является избыточной.
Я нашел этот вопрос по Unix & Linux с похожим запросом, но ответы там запутаны.
Псевдоним был бы предпочтительнее, потому что у меня уже есть четыре ls
псевдонима, настроенные в ~/.bashrc
:
alias ls='ls --color=auto'
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
Даже если бы псевдоним назывался dir
, я все еще использовал бы его :)
Это происходит из-за "расширения пути" и не связано с эти ls
перед Вашим ls
, команды добираются для выполнения Вашего "*", будет расширен до абсолютных путей, оно похоже на Вас, выполняют Вашу команду как это:
ls /path/to/file/1 /path/to/file/2 /path/to/file/3
Создают функцию:
function myls() { basename -a "$@" ;}
или создают псевдоним:
alias myls='basename -a'
<час> Помещенный это Ваш .bashrc
или где-то в другом месте, затем используйте его как это:
myls /boot/vml*
вывод был бы:
vmlinuz-4.9.0-3
...
Это не ls
это делает это. Это - оболочка Bash. Замените Ваш ls
команды с echo
, и посмотрите "подстановочное расширение", которое удар делает для Вас. К этому времени ls
начинает выполняться, все подстановочное расширение сделано.
ls /var/lib/initramfs-tools
Передачи ls
название каталога (см. ls -d /var/lib/initramfs-tools
).
ls /boot/vml*
на самом деле видит (в МОЕЙ системе, YMMV)
w3@aardvark:~(0)$ ls /boot/vml*
/boot/vmlinuz-4.4.0-83-generic /boot/vmlinuz-4.4.0-87-generic /boot/vmlinuz-4.4.0-89-generic
w3@aardvark:~(0)$ echo /boot/vml*
/boot/vmlinuz-4.4.0-83-generic /boot/vmlinuz-4.4.0-87-generic /boot/vmlinuz-4.4.0-89-generic
Список файлов к ls
.
То, что Вы хотите, не возможно, извините.