それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

OSXのBSDスタイルコマンドの引数をGNUスタイルに

OSX のコマンドはオプションの後付が出来ない。

まぁ、当たり前といえば当たり前なんだけど。

takuya@rena:~/Desktop$ /bin/ls  / -l
ls: -l: No such file or directory
/:
Applications    System      bin     etc     net     sbin        var
Library     Users       cores       home        opt     tmp
Network     Volumes     dev     mach_kernel private     usr

GNU 系のは行ける

takuya@rena:~/Desktop$ /usr/local/bin/ls  / -l
total 8219
drwxrwxr-x+ 133 root admin    4522  7 24 03:07 Applications
drwxr-xr-x+  69 root wheel    2346  2 26 14:39 Library
drwxr-xr-x    2 root wheel      68  9 13  2013 Network
drwxr-xr-x+   5 root wheel     170  6  9 17:46 System
drwxr-xr-x    4 root admin     136  7  9 23:21 Users
drwxrwxrwt+   4 root admin     136  7 24 00:28 Volumes
drwxr-xr-x   39 root wheel    1326  7 17 16:14 bin
drwxrwxr-t    2 root admin      68  9 13  2013 cores
dr-xr-xr-x    3 root wheel    4897  7 22 09:58 dev
lrwxr-xr-x    1 root wheel      11  1 18  2014 etc -> private/etc
dr-xr-xr-x    2 root wheel       1  7 22 09:59 home
-rwxr-xr-x    1 root wheel 8394000  6  4 13:27 mach_kernel
dr-xr-xr-x    2 root wheel       1  7 22 09:59 net
drwxr-xr-x+   4 root wheel     136  4  4  2013 opt
drwxr-xr-x    6 root wheel     204  1 18  2014 private
drwxr-xr-x   64 root wheel    2176  7 17 16:14 sbin
lrwxr-xr-x    1 root wheel      11  1 18  2014 tmp -> private/tmp
drwxr-xr-x   14 root wheel     476  3 27 06:42 usr
lrwxr-xr-x    1 root wheel      11  1 18  2014 var -> private/var

うーん。やっぱりGNUだわ。

ラッパー作っておく。

いつものごとくラッパー。

毎度毎度、brew installでGNUツールがインストール出来るとも限らないので・・・

#!/usr/bin/env ruby
opts = []
args = []

ARGV.each.with_index{| e,i  | 
    if e.match /^-/ then 
        opts << e 
        e_next = ARGV[i+1]
        next unless e_next
        unless e_next.match(/~-/) then
            opts << e_next
            ARGV.delete_at(i+1)
            next
        end
    else
        args << e
    end

}

cmd = "#{File.basename(__FILE__)} #{opts.join(' ')}  #{args.join(' ')} >/dev/tty"
`#{cmd}`

この ruby ファイルを ls とか scp とか ラッパーしたい名前で保存してPathを通す。