O echo
comando gera resultados diferentes com base na expressão passada para ele. O diretório de trabalho é/home/etc
$ echo .*/
/ ../ .cache/ .config/ .gnupg/ .local/ .mozilla/ .ssh/
$ echo ./*
./Desktop ./Documents ./Downloads ./Music ./Pictures ./Public ./snap ./Templates ./Videos
$ echo .*/*
.cache/event-sound-cache.tdb.d410907cf15246578458d0ad7919eb5e.x86_64-pc-linux-gnu .cache/evolution .cache/fontconfig .cache/gnome-screenshot .cache/gnome-software .cache/gstreamer-1.0 .cache/ibus .cache/ibus-table .cache/libgweather .cache/mesa_shader_cache .cache/mozilla .cache/thumbnails .cache/ubuntu-report .cache/update-manager-core .cache/wallpaper .config/dconf .config/enchant .config/eog .config/evolution .config/gedit .config/gnome-initial-setup-done .config/gnome-session .config/goa-1.0 .config/gtk-3.0 .config/ibus .config/nautilus .config/pulse .config/rclone .config/update-notifier .config/user-dirs.dirs .config/user-dirs.locale ./Desktop ./Documents ./Downloads .gnupg/private-keys-v1.d .gnupg/pubring.kbx .gnupg/trustdb.gpg .local/share .mozilla/extensions .mozilla/firefox .mozilla/systemextensionsdev ./Music ../ec ./Pictures ./Public ./snap ./Templates ./Videos
$ echo */*/
Downloads/sync/ Downloads/testdir/ snap/gnome-calculator/
O objetivo é reduzir o número de comandos para obter a saída. Pode haver uma única instrução de eco que combine a saída de echo .*/
e echo ./*
diferente de echo .*/ */
?
Supondo que você conheça
dot-files
(arquivos que começam com um ponto) e quefile-expansion
(arquivos de lista também conhecidos como globbing) não correspondam a esses por padrão.Você pode obter uma lista se fizer:
Se era isso que você queria perguntar.
A pergunta agora mudou para
Supondo que você queira listar arquivos
*
e arquivos ponto.*
no pwd:A resposta (portátil) é sim:
Limitado a bash:
É a casca que faz isso. Não ecoa.
Isso pode ser mais parecido com o que você está tentando fazer.
( shopt -s dotglob; echo * )
Ele lista todos os arquivos, mas não.
e..
.Funciona no bash.
Este é um equívoco fundamental. O
echo
comando não vê nenhuma expressão; ele simplesmente gera o conjunto de literais de string que recebe como argumentos.O shell é responsável por avaliar a linha de comando e, em seguida, executar a primeira palavra como um comando, com todas as palavras subsequentes passadas como argumentos.