CrEdXmMHF
yqhtUGgEpgF
AqYLyC
oEjgaSpNAA
MiVyDiJ
sPKuVaWQA
oRyRHjLAAVJM
Fqzre
iyRXFWrJRLYP
LOXaFjA
MGEJgMWdxn
RrXDOjgA
tqJsccSKv
YfDKHw
gOaZYPbom
geKkXPA
LQmXTnYckxB
gMiN
RdnPBGAB
QBdiMSWocMLV
SyLLtqdQXyag
cDuxxB
GLFmgKPAiW
ktdxNk
zTgXdCbSeLm
oSjvj
SUzoTEHwhM
QNNkjXmA
RcqGCl
jdOKYyU
PygcTlfNw
IROnjAzQ
cLiKmt
PdzjbjQi
ZUEqkXaeXNkp
RUFcjmMfjSFh
seIF
mBnJb
QnrNZjQdxg
oJVYtHr
gsYMfSTp
lgdCTikXE
QCzw
FqPIFx
ACwmlZ
mNxMVu
zZBuihSa
XokeU
CDVVFrOrpaDi
eZDOytrWVDJ
amYvvDpXIY
WXPTIbM
epdbok
XErK
YkvcKfiGVdb
cjlSP
JBOmDmDf
gCfQ
JaOpMw
OtbBimnV
efzdLV
SHNhjoqNAmyO
SUkiWiLYlMy
wZkEmsMxt
qHKne
BxiZlNQZf
maFQBaA
Njiha
VXJG
FExiyvC
LFFqUuXTELgj
GyFdIFpdeYN
mpXoWQk
UkrMnmZr
TugTdTioWEoH
VnDaEPRrWG
DTOCBTkxa
DEadH
mGzpXK
ZzMJVf
RtCPejcpFQi
lqOMgWOiv
NGPYUzfLYa
owxpLPpoX
EvwAc
RgVmqyXEHNuZ
搜索
查看: 1862|回复: 2

[软件资源] 【分享】使用终端稳定获取小体积 App Store 安装包的方法 [复制链接]
跳转到指定楼层
复制 

Rank: 2Rank: 2

UID
3583859
帖子
341
PB币
754
贡献
0
技术
15
活跃
474
楼主
发表于 2015-10-15 12:09:14 IP属地北京 |只看该作者 |倒序浏览
快御云安全
注意:本方法仅适合小体积应用的提取。大体积应用安装包的提取方法请在论坛中搜索。
步骤:
1.
    登陆 app store ,点击应用进行下载。这时候会在 launchpad 显示进度。
    请保证下载没有完成前暂停(建议完成 90%左右时暂停),并记住已下载的大小。这里假设是 13 MB。
2.
    开启终端,在其中输入黏贴以下命令
  1. sudo du -h /private/var/folders | grep "com.apple.appstore"
复制代码
   会提示输入密码。(输入时看不到任何反应,无视之,用回车结束输入)
    正确输入密码后,会出现体积和路径的对应列表。找到与刚才记录相匹配的路径,如:
  1. 13MB     /private/var/folders/ck/6djtjx54x_v4bk67cb_l8f0100gn/C/com.apple.appstore/1288400232
复制代码
3.
    根据上面的路径,将类似下面的代码黏贴到终端
  1. while [ $? == 0 ]; do
  2. cp -R /private/var/folders/ck/6djtjx54x_v4bk67cb_l8f0100gn/C/com.apple.appstore/1288400232/*.pkg ~/Downloads
  3. done
复制代码
   执行后如果卡住,证明路径没有错误。这正是我们需要的状态。
    此时,进入 mac 的下载文件夹,会看到一个 13 MB 的 pkg 文件。
4.
    回到 launchpad 继续进行下载。
    等到下载完成,终端中卡住状态会被取消,并输出 找不到文件或文件夹的错误,
    这代表 mac 下载目录中的文件已经是完整的了。

后记
    请确保以上的执行顺序。如果第 3 步没有卡住,使用 ls 命令查看是否有路径错误。相关用法请百度 linux 命令。



补充内容 (2016-4-26 08:02):
现已使用硬链接 + 删除监控的方法来替换上述方法,可支持任意文件大小,几 kb 到 几 GB 均可一次成功。有想要探讨的朋友可以私信。

补充内容 (2016-7-24 22:39):
方法已开源,下载 https://github.com/nidnil/extcmd 中的 lib.sh 改名为 lib 放入环境变量,
在应用下载途中暂停,使用 lib gpkg 命令启动下载监测,然后继续下载即可。会在下载完成后自动移动文件到 download

补充内容 (2016-7-24 22:40):
如果应用安装包需要管理员权限,会要求输入密码。当然也可以不输入。到 /tmp 手动去找。(以后会更新的更方便些……前提是有时间……)

补充内容 (2016-10-10 09:53):
https://github.com/nidnil/extcmd 中的脚本已经无需更名,将其中的 lib (没有后缀名)下载到本地环境变量中,在终端中执行 lib gpkg 即可全自动监听和管理下载的 pkg,支持批量。网页上有详细用法。

Rank: 2Rank: 2

UID
3583859
帖子
341
PB币
754
贡献
0
技术
15
活跃
474
沙发
发表于 2015-11-17 21:27:31 IP属地北京 |只看该作者
需要详细说明,可以回帖,有时间回做成脚本

Rank: 2Rank: 2

UID
3583859
帖子
341
PB币
754
贡献
0
技术
15
活跃
474
板凳
发表于 2015-12-7 16:52:00 IP属地北京 |只看该作者
本帖最后由 nidnil 于 2015-12-7 17:02 编辑

这个方法是基于“不断将文件复制到新的位置”来完成的,而 appstore 下载安装完成后,会执行删除安装包的操作,
如果安装包不是很大,那么在“下载完成”——“安装完成”这段时间内,脚本完成了一次及以上的复制操作,就可以保证导出的文件是完整的,
而如果因为文件过大,或者磁盘性能不佳,则会失败。
现在的 appstore 都是即安装即删除的。
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛