Shell

如何在所有子文件夾中搜尋萬用字元名稱?

  • February 24, 2019

如何在所有子文件夾中搜尋萬用字元名稱?什麼是 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選項來解決此問題。

引用自:https://unix.stackexchange.com/questions/47858