mfd 0.1.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +26 -26
- data/README.md +111 -15
- data/lib/mfd/asset.rb +81 -1322
- data/lib/mfd/cli.rb +8 -21
- data/lib/mfd/version.rb +1 -1
- data/mfd.gemspec +3 -3
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8965ee1090d0d44e11e41a7ff131010878ec484968eba9ca432489ffba3e5efe
|
4
|
+
data.tar.gz: c17bedc8637b53817675c0d66596bbbe67560eb8ec7aa6f5db054fe8a4ac5851
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 41ab4396391573e3f6e4d322f80a66ea85232fca850671c096fa364a7d4863b0ef844c6442775b33ca7cfc652d92f59d1eed8c912fd156792b58fd4361d39f69
|
7
|
+
data.tar.gz: 5d69482c8bd7cabda89bc24551b2f1318a9b359b9115a7d62dc67925082ecd246ff7355682074b86b2c70c20f76d934ef9d0b2cc31f1985b58c15d13dd2b3630
|
data/Gemfile.lock
CHANGED
@@ -1,45 +1,45 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
mfd (0.1
|
4
|
+
mfd (0.2.1)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
-
byebug (11.
|
10
|
-
coderay (1.1.
|
11
|
-
diff-lcs (1.
|
12
|
-
method_source (0.
|
13
|
-
pry (0.
|
14
|
-
coderay (~> 1.1
|
15
|
-
method_source (~>
|
16
|
-
pry-byebug (3.
|
9
|
+
byebug (11.1.3)
|
10
|
+
coderay (1.1.3)
|
11
|
+
diff-lcs (1.5.0)
|
12
|
+
method_source (1.0.0)
|
13
|
+
pry (0.14.2)
|
14
|
+
coderay (~> 1.1)
|
15
|
+
method_source (~> 1.0)
|
16
|
+
pry-byebug (3.10.1)
|
17
17
|
byebug (~> 11.0)
|
18
|
-
pry (
|
19
|
-
rake (
|
20
|
-
rspec (3.
|
21
|
-
rspec-core (~> 3.
|
22
|
-
rspec-expectations (~> 3.
|
23
|
-
rspec-mocks (~> 3.
|
24
|
-
rspec-core (3.
|
25
|
-
rspec-support (~> 3.
|
26
|
-
rspec-expectations (3.
|
18
|
+
pry (>= 0.13, < 0.15)
|
19
|
+
rake (13.0.6)
|
20
|
+
rspec (3.12.0)
|
21
|
+
rspec-core (~> 3.12.0)
|
22
|
+
rspec-expectations (~> 3.12.0)
|
23
|
+
rspec-mocks (~> 3.12.0)
|
24
|
+
rspec-core (3.12.1)
|
25
|
+
rspec-support (~> 3.12.0)
|
26
|
+
rspec-expectations (3.12.2)
|
27
27
|
diff-lcs (>= 1.2.0, < 2.0)
|
28
|
-
rspec-support (~> 3.
|
29
|
-
rspec-mocks (3.
|
28
|
+
rspec-support (~> 3.12.0)
|
29
|
+
rspec-mocks (3.12.5)
|
30
30
|
diff-lcs (>= 1.2.0, < 2.0)
|
31
|
-
rspec-support (~> 3.
|
32
|
-
rspec-support (3.
|
31
|
+
rspec-support (~> 3.12.0)
|
32
|
+
rspec-support (3.12.0)
|
33
33
|
|
34
34
|
PLATFORMS
|
35
35
|
ruby
|
36
36
|
|
37
37
|
DEPENDENCIES
|
38
|
-
bundler (
|
38
|
+
bundler (>= 1.17)
|
39
39
|
mfd!
|
40
40
|
pry-byebug (>= 3.6.0)
|
41
|
-
rake (
|
42
|
-
rspec (
|
41
|
+
rake (>= 10.0)
|
42
|
+
rspec (>= 3.0)
|
43
43
|
|
44
44
|
BUNDLED WITH
|
45
|
-
|
45
|
+
2.4.12
|
data/README.md
CHANGED
@@ -1,29 +1,125 @@
|
|
1
1
|
# Mfd
|
2
2
|
|
3
|
-
|
3
|
+
mdfind4 - a better mdfind built upon mdfind3
|
4
4
|
|
5
|
-
|
5
|
+
Spotlight 是 OS X 上非常好用的一个桌面搜索工具,mdfind 是Spotlight 的 CLI frontend,
|
6
|
+
虽然 mdfind 的功能足够强大,但是界面非常不友好,例如,要搜索电脑中2013年的文件大小大于 1MB
|
7
|
+
的jpg图像文件,需要一个非常复杂的命令。mdfind4 对mdfind进行封装,提供比较易用的界面
|
6
8
|
|
7
9
|
## Installation
|
8
10
|
|
9
|
-
|
10
|
-
|
11
|
-
```ruby
|
12
|
-
gem 'mfd'
|
13
|
-
```
|
14
|
-
|
15
|
-
And then execute:
|
16
|
-
|
17
|
-
$ bundle
|
18
|
-
|
19
|
-
Or install it yourself as:
|
11
|
+
Install it yourself as:
|
20
12
|
|
21
13
|
$ gem install mfd
|
14
|
+
|
15
|
+
Or:
|
22
16
|
|
23
|
-
|
17
|
+
$ sudo gem install mfd
|
24
18
|
|
25
|
-
|
19
|
+
## Usage
|
26
20
|
|
21
|
+
```
|
22
|
+
usage: mfd [options] [search dir]
|
23
|
+
|
24
|
+
通过指定若干选项来搜索文件系统中被 Spotlight 索引的文件,每个选项之间是逻辑与的关系. 默认将
|
25
|
+
搜索文件系统中所有的被索引文件,可以通过最后一个参数来约束其只在某个目录中进行搜索.
|
26
|
+
|
27
|
+
% mdfind4 --content-type com.omnigroup.omnigraffle.graffle --from 2011/11/1 -t '2013-01-01 14:30:24'
|
28
|
+
% mdfind4 --query '关键字' --content-type 'com.adobe.pdf'
|
29
|
+
% mdfind4 -e mp3 -b10M
|
30
|
+
|
31
|
+
options:
|
32
|
+
|
33
|
+
以下选项均支持以一个 "@" 符号开头, 后跟一个文件名,表示此选项的值将从给定的文件中提取:
|
34
|
+
|
35
|
+
• -f, --from
|
36
|
+
• -t, --to
|
37
|
+
• -F, --from-create
|
38
|
+
• -T, --to-create
|
39
|
+
• -c, --content-type
|
40
|
+
• -k, --kind
|
41
|
+
• -b, --biggerthan
|
42
|
+
• -s, --smallerthan
|
43
|
+
|
44
|
+
|
45
|
+
|
46
|
+
-f, --from from e.g. --from 2010/1/1
|
47
|
+
搜索"文件最后修改时间"等于或晚于指定时间的文件,时间格式为"YYYY-mm-dd HH:MM:SS"
|
48
|
+
其中可以使用任意非数字字符作为分隔符,也可以只指定日期部分。
|
49
|
+
另外, -f 选项还支持指定一个数字后跟一个字母的形式来指定时间,
|
50
|
+
支持的字符包括: S, M, H, d, m, Y,分别表示: 秒, 分, 时,
|
51
|
+
天, 月, 年, 其中一个月等于 30 天, 一年等于 365 天.
|
52
|
+
例如, 搜索最近 10 天的文件: -f 10d
|
53
|
+
|
54
|
+
-t, --to to 搜索"文件最后修改时间"等于或早于指定时间的文件, 格式同"-f"选项
|
55
|
+
|
56
|
+
-F, --from-create from 搜索"文件创建时间"等于或晚于指定时间的文件, 格式同"-f"选项
|
57
|
+
|
58
|
+
-T, --to-create to 搜索"文件创建时间"等于或早于指定时间的文件, 格式同"-f"选项
|
59
|
+
|
60
|
+
-q, --query query e.g. --query "关键字"
|
61
|
+
|
62
|
+
-c, --content-type contenttype e.g. --contenttype com.omnigroup.omnigraffle.graffle
|
63
|
+
搜索 "kMDItemContentType" 属性等于指定值的文件,可以不
|
64
|
+
指定完整的 Content Type,例如 Ruby 脚本的 Content Type
|
65
|
+
为 "public.ruby-script",但是可以使用下面的命令所有所有
|
66
|
+
Ruby 脚本文件:mdfind4 -c ruby
|
67
|
+
|
68
|
+
-e, --type file-ext-name .e.g -e 'mp3'
|
69
|
+
搜索文件扩展名等于指定值的文件
|
70
|
+
|
71
|
+
-k, --kind kind e.g. --kind "HTML Document"
|
72
|
+
"-k"选项是另外一个用来指定文件类型的选项,它使用
|
73
|
+
"kMDItemKind"属性来搜索文件. 例如, 搜索邮件: "-k 邮件信息"
|
74
|
+
搜索 Safari 历史记录: "-k 'Safari 历史记录项目'"
|
75
|
+
|
76
|
+
-b, --bigger-than size e.g. --bigger-than 100000
|
77
|
+
搜索文件大小大于或等于给定值的文件,可以使用 t, g, m, k 等单位,
|
78
|
+
例如, 搜索大于或等于 1MB 字节的文件:"-b 1m"
|
79
|
+
|
80
|
+
-s, --smaller-than size e.g. --smaller-than 100000
|
81
|
+
搜索文件大小小于或等于给定值的文件,可以使用 t, g, m, k 等单位,
|
82
|
+
例如, 搜索小于或等于 1GB 字节的文件:"-b 1G"
|
83
|
+
|
84
|
+
--prop-eq arg_value
|
85
|
+
e.g. --prop-eq FSSize@diary.txt
|
86
|
+
不同类型的文件各自都有多种多样的属性,本程序支持的属性比较有限, 若需要
|
87
|
+
按照其他属性比较,则使用本选项以及下面三个以 "--prop"
|
88
|
+
打头的选项。可以通过 OS X 自带的 "mdls" 命令来查看文件的各种属性,
|
89
|
+
属性名称一般以 "kMDItem" 打头,使用这四个选项时可以只指定 "kMDItem"
|
90
|
+
后面的部分, 本选项的值的格式为 "property@filename", 例如,
|
91
|
+
搜索文件大小等于 a.txt 的所有文件:--prop-eq FSSize@./a.txt
|
92
|
+
|
93
|
+
--prop-ne arg_value
|
94
|
+
e.g. --prop-ne FSSize@diary.txt
|
95
|
+
|
96
|
+
--prop-le arg_value
|
97
|
+
e.g. --prop-le FSSize@diary.txt
|
98
|
+
|
99
|
+
--prop-ge arg_value
|
100
|
+
e.g. --prop-ge FSSize@diary.txt
|
101
|
+
|
102
|
+
-d, --downloadfrom url 搜索从URL下载的文件
|
103
|
+
-n, --name name 按文件名称搜索, 自动支持模糊匹配, 无需指定通配符
|
104
|
+
-0, --null Prints an ASCII NUL character after each result path.
|
105
|
+
This is useful when used in conjunction with
|
106
|
+
xargs -0.
|
107
|
+
--live
|
108
|
+
Causes the mdfind command to provide live-updates to the
|
109
|
+
number of files matching the query. When an
|
110
|
+
update causes the query results to change the
|
111
|
+
number of matches is updated. The find can
|
112
|
+
be cancelled by typing ctrl-C.
|
113
|
+
|
114
|
+
--count
|
115
|
+
Causes the mdfind command to output the total number of
|
116
|
+
matches, instead of the path to the matching
|
117
|
+
items.
|
118
|
+
|
119
|
+
--debug
|
120
|
+
mdfind4 通过调用 OS X 系统自带的 mdfind 命令来完成文件搜索,指定
|
121
|
+
|
122
|
+
```
|
27
123
|
## Development
|
28
124
|
|
29
125
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|