本文使用Makdown编辑


通常系统中打开一个文件有好多种方法,编辑也是。例如你要打开OmniGraffle来画个图(suppose you are working on the Mac OS X)

1.可以使用命令open来启动应用:open -a OmniGraffle [FiletoEdit]

2.各种文件管理器,默认的Finder, 还有PathFinder, DCommander, Transmit等,只要能调用Finder的open,save的也可以,Dock;

3.当然AppleScript/JavaScript, Shell(bash,zsh)也可以;

4.Alfred, Spotlight这类搜索类的;

Access Hidden Files or Folders

但是,有些文件和文件夹是隐藏的,Finder考虑到这个提供了『⌘+⇧+G』,这样只要你输入正确的路径就可以在finder中显示,这样可以通过点击继续任务,常用的~/Library$HOME/下的其他隐藏的文件夹都可以访问了

还有,通过 defaults write ... 来配置来显示:

defaults write com.apple.finder AppleShowAllFiles -bool true来显示所以隐藏的

defaults write com.apple.finder AppleShowAllFiles -bool false了关闭

还可以直接修改文件和文件夹的flag来弄:

chflags nohidden ***FileorFoldertoOperate***

But, 每次都有敲入这么多字符太麻烦,所以立马会想到用Shell的alias

alias showAll='defaults write com.apple.finder AppleShowAllFiles -bool true'

alias hideAll='defaults write com.apple.finder AppleShowAllFiles -bool false'

添加到.bash_profile, source .bash_profile,刷新Finder之后

But, 每次都有打开Terminal,尤其配置多了之后启动起来超级慢

更换iTerm 2

But, 这个配置是全局的,很多时候我只需要显示某一个或几个文件和文件夹,所以想到chflags

chflags nohidden Afile
chflags nohidden BFolder
chflags nohidden CFolder
...
...
# after
chflags hidden Afile
chflags hidden BFolder
chflags hidden CFolder
...

OK啦,但是很多时候打开Terminal,ls -la, ls -l, open, vim,发现并不需要显示或者隐藏什么

而打开Finder吧,有时候又需要显示隐藏

Object

所以想到Mac自带的任务流程工具 AppleScript/Automator,

写个Service添加到Folder

  1. 选中文件夹
  2. 可以选择『隐藏该文件夹』「Hide This」『显示该文件夹下所有隐藏的文件(夹)』「Show All Under」
  3. 允许选择多个文件夹
  4. 可以隐藏文件

Add a Finder Service


下面实现一下常用的几个


  1. 右键任何一个文件夹,选择Services->Create Service
  2. 搜selected,拖Get Selected Finder Items到右边panel

  3. 搜shell,拖Run Shell Script到右边panel
  4. Shell选/bin/bash,Pass Input选 as arguments

    4.1 隐藏 「hide」
for item in $@;do
# doesn't matter it is a file or a directory
echo $item
chflags hidden "$item"
done

4.2 显示文件夹下的所以隐藏项「unhide under」

for folder in $@;do
echo $folder
if test -d $folder;then
for dir in $folder/*;do
if test -d $dir;then
chflags nohidden "$dir"
cat "$dir\n" >> .aHiddenItems
fi
done
fi
done

4.3 隐藏文件夹下之前隐藏的「hide under」

for folder in $@;do
if test -d $folder;then
echo $folder
if [ -d $folder/.aHiddenItems ];then
for item in `cat $folder/.aHiddenItems`;do
chflags hidden "$item"
done
fi
fi
done
  1. Step和Run测试没有错误

    5.『⌘+S』保存,会自动保存到~/Library/Services/下
  2. 现在可以用了

Mac下使用Automator实现隐藏和显示的更多相关文章

  1. Mac下使用Automator实现截屏编辑保存

    以前在Windows下使用百度或者搜狗输入法的截图工具很方便.❶快捷键(Alt+X,我设置的是这个),❷选择区域,❸编辑所选区域,包括添加文字,线条框框,调色,❹点击『✔️』选择保存位置,修改文件名保 ...

  2. Mac下使Iterm2开机启动不显示界面

    一.在登录项上添加Iterm2的启动项 二.打开Iterm2 1.启动后会显示Iterm2,此时点击关闭按钮,保证桌面上没有任何的控制台窗口. 2.按[Command]+[Shift]+[S],保存名 ...

  3. iOS问题处理:如何在Mac下显示Finder中的所有文件

    摘自:http://www.cnblogs.com/elfsundae/archive/2010/11/30/1892544.html 在Unix下工作,你可能需要处理一些“特殊“文件或文件夹,例如/ ...

  4. Mac下显示隐藏文件 以及修改 hosts文件内容

    修改hosts 文件内容: 进入etc 文件夹,找到hosts 文件,把该文件复制出来,修改完里面的内容后,先把etc中的hosts 文件删除,然后在把修改后的文件脱机去 可能需要管理员的密码,你输入 ...

  5. Mac下不显示设备

    使用命令行adb devices 试了下,没设备列表. 第一步: 查看usb设备信息 在 终端输入:system_profiler SPUSBDataType     可以查看连接的usb设备的信息 ...

  6. [Mac入门]如何在Mac下显示Finder中的所有文件

    在Unix下工作,你可能需要处理一些“特殊“文件或文件夹,例如/usr,/bin, etcf,或一些"dot files"(如.bash_profile).但是Linux/Unix ...

  7. 如何在Mac下显示Finder中的所有文件

    在Unix下工作,你可能需要处理一些“特殊“文件或文件夹,例如/usr,/bin, etcf,或一些"dot files"(如.bash_profile).但是Linux/Unix ...

  8. Mac下显示网页全屏快捷键

    control+command+F mac下谷歌浏览器全屏时隐藏头部:(隐藏标签页和地址栏) command+shift+B

  9. Mac 下显示隐藏文件或文件夹

    Mac 操作系统 隐藏显示文件 显示:defaults write com.apple.finder AppleShowAllFiles -bool true 隐藏:defaults write co ...

随机推荐

  1. 北大,awk 命令基础练习

    北大,awk 命令基础练习 Red Hat Enterprise Linux Version 5.3 Get the latest news about the world's Open Source ...

  2. robotframework 测试结果写入数据库

    即将更新...........

  3. js访sleep方法

    function sleep(n) { var start = new Date().getTime(); while (true) if (new Date().getTime() - start ...

  4. 第六篇 SQL Server安全执行上下文和代码签名

    本篇文章是SQL Server安全系列的第六篇,详细内容请参考原文. SQL Server决定主体是否有必要的执行代码权限的根本途径是其执行上下文规则.这一切都可能复杂一个主体有执行代码的权限,但是却 ...

  5. 虚拟化技术比较 PV HVM

    很多人看到同样配置的VPS价格相差很大,甚是不理解,其实VPS使用的虚拟技术种类有很多,如OpenVZ.Xen.KVM.Xen和HVM与PV.在XEN中pv是半虚拟化,hvm是全虚拟化,pv只能用于L ...

  6. 新的三种EBS类型解析

    就在前两天,创建EBS的之后页面发生了点变化,出现三种新的类型: General Purpose (SSD) Volumes Provisioned IOPS (SSD) Volumes Magnet ...

  7. nodejs 入门

    1. hello word hello.js console.log("hello"); node hello.js即可 2.调试 如果 npm install太慢 可以使用国内淘 ...

  8. system(linux) power on note

    读詹荣开文档摘 BIOS 在完成硬件检测和资源分配后,将硬盘 MBR 中的 Boot Loader 读到系统的 RAM 中,然后将控制权交给 OS Boot Loader Boot Loader执行全 ...

  9. C++Primer 第十七章

    //1.当我们希望将一些数据组合成单一对象,但又不想麻烦地定义一个新的数据结构来表示这些数据的时候,tuple非常有用.其和其伴随类型和函数都定义在头文件tuple中,声明在命名空间std中. tup ...

  10. Lintcode: Interval Sum II

    Given an integer array in the construct method, implement two methods query(start, end) and modify(i ...