kjo*_*kjo 4 zsh find wildcards
我想删除某个目录下的所有内容/path/to/foo
,除了那些与元模式匹配的子目录
/path/to/foo/<DIGITS>/
Run Code Online (Sandbox Code Playgroud)
例如,如果下面的内容/path/to/foo
最初是这样的:
/path/to/foo
??? 0/
? ??? a
? ??? b
??? 232532/
??? 42
??? 73/
? ??? d
? ??? e
??? 8xyz/
? ??? i
? ??? j
??? _bar/
? ??? x
? ??? y
? ??? z
??? .baz/
? ??? f
? ??? frobozz/
? ??? g
? ??? h
??? quux/
??? 123/
Run Code Online (Sandbox Code Playgroud)
...我想结束
/path/to/foo
??? 0/
? ??? a
? ??? b
??? 232532/
??? 73/
??? d
??? e
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个find ... -delete
基于 - 的咒语,或者一个合适的zsh
glob 模式(for rm -r
),可以做到这一点。我正在使用 Linux。
与zsh
:
set -o extendedglob # best in ~/.zshrc
rm -rf /path/to/foo/^<->(D) /path/to/foo/<->(^-/)
Run Code Online (Sandbox Code Playgroud)
^something
是不是(类似ksh
的!(something)
)<->
是<x-y>
匹配来自x
to 的十进制整数y
,但没有提供任何边界(因此匹配任何十进制数字序列,类似于ksh
's +([0-9])
)。(D)
包含隐藏文件(D
ot 文件)的 glob 限定符(^-/)
glob 限定符仅表示符号链接解析后不是目录类型的文件(-
如果您还想删除目录的符号链接,请删除)。 归档时间: |
|
查看次数: |
646 次 |
最近记录: |