Wildcards
可以將 echo 組合以產生 .*/ 和 */ 的單個結果嗎?
該
echo
命令根據傳遞給它的表達式輸出不同的結果。工作目錄是/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/
目的是減少獲得輸出的命令數量。可以有一個單一的 echo 語句結合 和 的
echo .*/
輸出echo ./*
嗎echo .*/ */
?
是外殼做的。不迴聲。
這可能更像您正在嘗試做的事情。
( shopt -s dotglob; echo * )
它列出了所有文件,但不列出.
and..
。它在 bash 中工作。
假設您知道
dot-files
(以點開頭的文件)並且file-expansion
(列表文件又名萬用字元)預設情況下與這些不匹配。如果您這樣做,您可以獲得一份清單:
$ echo .*/ ./* .*/* */*/
如果這就是你要問的。
現在的問題變成了
除了 echo ./ / 之外,是否可以有一個單一的 echo 語句結合 echo ./ 和 echo ./ 的輸出?
假設您的意思是在 pwd中列出文件
*
和點文件 :(攜帶式)答案是肯定的:.*
find * -maxdepth 1 -type d
僅限於 bash:
shopt -s dotglob echo */