1 个不稳定版本
0.1.0 | 2024年3月27日 |
---|
#1671 在 命令行工具
用于 wildpath-cli
17KB
305 代码行
wildpath
一个用于在 UNIX 系统中解析文件路径通配符的 Rust 库。
该库公开了一个方法,resolve
,它将接受一个包含通配符的文件路径,并返回文件系统中所有符合给定描述的内容。
例如,考虑以下文件系统:
root
├── blogs
│ ├── blog_1
│ │ ├── assets
│ │ │ └── logo.jpeg
│ │ └── post.txt
│ └── blog_2
│ ├── assets
│ │ └── research_notes.txt
│ └── post.txt
└── videos
├── video_1
│ ├── assets
│ │ └── logo.jpeg
│ └── script.txt
├── video_2
│ ├── assets
│ │ └── sound_effect.wav
│ └── script.txt
└── video_3
├── assets
│ └── new_logo.png
└── script.txt
如果你想找到所有内容中的文本,你可以调用
resolve(&Path::new("/root/*/*/*.txt").unwrap())
这将返回所有 3 层深的 txt
文件
[
"/root/blogs/blog_1/post.txt",
"/root/blogs/blog_2/post.txt",
"/root/videos/video_1/script.txt",
"/root/videos/video_2/script.txt",
"/root/videos/video_3/script.txt"
]
如果你想查看所有使用过的标志版本,你可以调用
resolve(&Path::new("/root/*/*/assets/*logo*").unwrap())
这将返回
[
"/root/blogs/blog_1/assets/logo.jpeg",
"/root/videos/video_1/assets/logo.jpeg",
"/root/videos/video_3/assets/new_logo.png"
]
或者,如果你想查看原始博客和视频使用的标志,你可以调用
resolve(&Path::new("/root/*/*_1/assets/*logo*").unwrap())
这将返回
[
"/root/blogs/blog_1/assets/logo.jpeg",
"/root/videos/video_1/assets/logo.jpeg"
]
如果添加一个名为 presentations
的新目录,只要它遵循相同的结构,这条相同的代码也将选择第一个演示文稿中使用的标志。
符号链接
wildpath
也会跟随符号链接并解析。例如,如果你有以下文件系统:
root
├── A
│ └── X (<- symlink to B)
└── B
└── c.png
并且传递一个路径 /root/A/*/*
,你将收到 [/root/B/c.png]
作为输出。
限制
wildpath
只在 UNIX 系统上进行过测试。目前,它可能在 Windows 上无法正常工作。- 它也不会在路径中尊重
.
或..
。目前,这些必须在使用库之前解决。
依赖项
~2–3MB
~53K SLoC