Shell
如何在所有子文件夾中搜尋萬用字元名稱?
如何在所有子文件夾中搜尋萬用字元名稱?什麼是 DOS 命令的等價物:
dir *pattern* /s
在 *nix 中?
您可以使用
find
. 例如,如果您想查找文件abcd
名中包含的所有文件和目錄,您可以執行:find . -name '*abcd*'
Zsh:
ls -ld -- **/*abcd*
Ksh93:
set -o globstar # put this line in your ~/.kshrc ls -ld -- **/*abcd*
重擊≥4:
shopt -s globstar # put this line in your ~/.bashrc ls -ld -- **/*abcd*
雅什:
set -o extendedglob # put this line in your ~/.yashrc ls -ld -- **/*abcd*
tcsh:
set globstar ls -ld -- **/*abcd*
魚:
ls -ld -- **abcd*
(請注意,在下降目錄樹時,其中一些 shell 將遵循符號連結;其中一些不喜歡
zsh
或必須這樣做)。yash``tcsh``***/*abcd*
可移植(非常舊的系統除外;OpenBSD 花了很長時間,但最終
exec … +
從 5.1 開始支持):find . -name '*abcd*' -exec ls -ld {} +
不是 POSIX,但適用於 *BSD、Linux、Cygwin、BusyBox:
find . -name '*abcd*' -print0 | xargs -0 ls -ld
請注意,除了在某些 BSD 中,如果沒有找到匹配的文件,
ls -ld
將在沒有參數的情況下執行, list 也是如此.
。對於某些xargs
實現,您可以使用該-r
選項來解決此問題。