一条相见恨晚的指令
MacOS
open .
会打开Finder。事实上它能打开所有的目录,比如:$ open ~/Library/Preferences
$ open /etc
$ open ../..
你还能同时打开多个目录:
$ open ~/Documents ~/Desktop ~/Downloads
$ open ~/D*
然后它还能打开各种文件,比如:
$ open document.pdf
会使用默认的程序(通常是Preview
)打开当前目录下的document.pdf
,同样你也能一次性打开多个文件:
$ open ~/Desktop/Screen\ Shot\ *.png
你还能指定使用什么程序来打开文件,使用-a
参数:
$ open -a Preview ~/Desktop/Screen\ Shot\ *.png
$ open -a TextEdit web.html
上面的指令会使用Preview
来打开多个截屏的图片,使用TextEdit
打开网页。
打开网络位置也是可以的,比如打开某个网页,访问远程的计算机等:
$ open https://scriptingosx.com # default browser
$ open vnc://TestMac.local # Screen Sharing
总有一个姿势会爽到你
我自己平时用得最多的就是打开文件,比如我跑程序,中间有生成文件,我就想打开看一眼,就不用去Finder里翻,直接命令行打开它。而且不单单是shell,比如我在R里做了某些分析,生成了某个文件,我也是直接就可以打开它,用system("open the_file")
搞定。
再者我在命令行,我想打开某个文件,但不想窗口跳出来,因为我还想待在命令行里,还想要窗口聚焦在Terminal,可以用-g
参数打开文件。
再比如你copy了个文件,你可以用pbpaste | open -f -a TextEditor
打开,这些打开了TextEditor
的同时,你copy的东西已经自动paste到里面了。-f
参数就是从STDIN中读入,这有个好处是比如你用awk
处理了一些文本文件,你可以通过管道直接就把结果贴在了文本编辑器里(没有文件生成)。
Windows用户
Windows用户怎么搞?毕竟有了WSL之后,生信的人用Windows也越来越多了,而且搞不好以后会比MacOS更成为开发的主流,毕竟MacBook以后换ARM也是可能的。相应的windows命令就是start,没错就是开始菜单的start
,我想绝大多数人都没用过这个指令。可以说不管你是什么文件,你只要start 文件名
,它就会用系统默认的程序打开,如果它不知道该用什么打开呢?如果被软件管理类的软件接管了,那么它可能会提醒你可以装什么软件来打开:
正常的情况下,不知道怎么打开,或者出现上图的情况,你把它关掉,这时候它会让你选程序去打开它,就是这么方便。
Linux
对于Linux用户来说,那命令行是分分钟的事,我们也有一个可以打开各种文件的指令,它的工作原理也一样,使用系统默认的程序去打开,那么这个指令就是xdg-open
。
R
R用户也可以直接在R终端里打开文件,使用系统默认的程序。这样做好处还是挺多的,比如你做某个分析,出了一些中间结果,你想看一下,就不用退出R,去终端操作,也不用另开终端或文件管理器,再定位到你当前的工作目录。直接在R里o(文件名)
,然后它就会根据你的系统去调用open
, start
或xdg-open
,然后这三个神奇的指令中的一个,就会把该干的活都干了,要打开当前的工作目录的话就是o('.')
.
至于这个o
函数在那里,就在rvcheck
这个包里,因为这个包没有依赖,代码很简单,所以我写到~/.Rprofile
中,打开R的时候,自动加载,方便我平时想在R中打开文件。
比如下图,我打开一个压缩包:
往期精彩