首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用hdiutil在Mac中安装具有特定名称的驱动器

用hdiutil在Mac中安装具有特定名称的驱动器
EN

Stack Overflow用户
提问于 2015-07-29 06:26:01
回答 1查看 2.2K关注 0票数 0

我正在安装一些应用程序与外壳模块在ansible。我想编写适合不同版本的脚本。

代码语言:javascript
复制
- name: Installing Sublime Text
  shell: "{{ item }}"
  with_items:
  - hdiutil mount "{{download_location}}/sublime.dmg"
  - cp -R /Volumes/Sublime\ Text\ 2/Sublime\ Text\ 2.app "{{applications_location}}/Sublime Text.app"
  - hdiutil unmount /Volumes/Sublime\ Text\ 2

现在我使用的是附加/挂载,但问题是当我安装多个版本时,每个版本都有自己的不同名称的文件夹结构,我必须分别创建脚本来进行复制。

代码语言:javascript
复制
hdiutil mount --name common
cp -R /Volumes/common/myapp.app destination

如果我得到公用文件夹名,我可以将公用/*应用程序复制到目的地。如何挂载具有特定名称的dmg文件?

EN

回答 1

Stack Overflow用户

发布于 2015-07-31 11:43:50

hdiutil附着/安装

下面是一种非常简单的附加/安装.dmg的方法,我想出了这个方法:

代码语言:javascript
复制
var=$(ls | egrep -m1 ".*Sub.*dmg"); yes y | hdiutil attach $var

该命令试图定位和挂载名称中包含"Sub“的任何内容,即.dmg。使用yes y时,如果有协议通知,则接受通知。如果你不认为你会遇到这样的事情,你可以随时删除它。

cp前往目的地:

代码语言:javascript
复制
cp -R /Volumes/*Sub*/*.app ~/Path/To/Destination

下一个命令搜索包含单词"Sub“作为卷名的任何已挂载或附加的卷;然后将.app复制到目的地。如果您有多个.dmg文件要挂载/附加文件并将文件复制到目标,则可以使用递归find

递归hdiutil/装入+ cp

代码语言:javascript
复制
yes y | find . -regex ".*Sub.*dmg" -exec hdiutil attach {} \;
find /Volumes/*Sub*/* -regex ".*\.app" -exec cp -R {} ~/Path/To/Destination \;

这应该会找到包含"Sub“的任何.dmgs,将它们全部挂载,并将.app从每个卷复制到目的地。谨慎使用-它将在没有警告的情况下复制目标中同名的文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31692748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档