Edu*_*scu 52 shell recursive wildcards
如何在所有子文件夹中搜索通配符名称?什么是 DOS 命令的等价物:dir *pattern* /s
在 *nix 中?
Rya*_* A. 68
您可以使用find
. 例如,如果您想查找文件abcd
名中包含的所有文件和目录,您可以运行:
find . -name '*abcd*'
Run Code Online (Sandbox Code Playgroud)
Gil*_*il' 16
Zsh:
ls -ld -- **/*abcd*
Run Code Online (Sandbox Code Playgroud)
Ksh93:
set -o globstar # put this line in your ~/.kshrc
ls -ld -- **/*abcd*
Run Code Online (Sandbox Code Playgroud)
重击?4:
shopt -s globstar # put this line in your ~/.bashrc
ls -ld -- **/*abcd*
Run Code Online (Sandbox Code Playgroud)
亚什:
set -o extendedglob # put this line in your ~/.yashrc
ls -ld -- **/*abcd*
Run Code Online (Sandbox Code Playgroud)
tcsh:
set globstar
ls -ld -- **/*abcd*
Run Code Online (Sandbox Code Playgroud)
鱼:
ls -ld -- **abcd*
Run Code Online (Sandbox Code Playgroud)
(注意其中一些炮弹降目录树时,将遵循符号链接;有的那些不喜欢的zsh
,yash
或者tcsh
有***/*abcd*
这样做)。
便携(除了非常旧的系统;OpenBSD 花了很长时间但终于exec … +
从 5.1 开始支持):
find . -name '*abcd*' -exec ls -ld {} +
Run Code Online (Sandbox Code Playgroud)
不是 POSIX,但适用于 *BSD、Linux、Cygwin、BusyBox:
find . -name '*abcd*' -print0 | xargs -0 ls -ld
Run Code Online (Sandbox Code Playgroud)
请注意,除了在某些 BSD 中,如果没有找到匹配的文件,ls -ld
将不带参数运行,因此将列出.
. 对于某些xargs
实现,您可以使用该-r
选项来解决该问题。
归档时间: |
|
查看次数: |
110211 次 |
最近记录: |