コマンドのなかには、複数のファイルを引数にとってくれないのがある。 例えば、unzipは複数のファイルを解凍したい場合は次のようにしないといけない。 $ unzip a.zip $ unzip b.zip # NG: unzip a.zip b.zip こういうときはfor .. inを使えばいい。 $ for i in *.zip; do unzip $i; done でも、割と打ちづらいのでシェルスクリプトを書いてみた。これを使うと $ each unizp *.zip と書ける。 オプションだって付けれる。 # overwrite $ each 'unizp -o' *.zip ソースコード #!/bin/sh cmd=$1 shift for file in $@; do $cmd $file done
最近、zsh とscreen を使い始めました。こりゃ便利ですね!特にzsh は便利すぎます。 cd で直前にいたディレクトリ以外にも一発ジャンプできる svn とうって、Tab 押すと、diff とかupdate とかのコマンド候補一覧が補完対象として表示される scp コマンドとかの際に、リモートマシン上のファイルに対しても補完機能が働く screen と併用した際に、コマンド履歴を共有できる 誤ってコマンドをうつと、「もしかしてこれ?」てきなものを聞いてきてくれる などなど、まだ浅い部分しか使えてないと思いますが、それでもめちゃくちゃ便利です。Introduction of the ZSHにも、「それ、zsh でできるよ!」ってことが沢山書かれています。 zsh を導入したい方には新入学生/新社会人応援企画:あるWebプログラマーの作業環境――豪傑の三種の神器【前編】 (1/2) -
いつも忘れるのでメモ。以下のコマンドを実行すると、カレントディレクトリにgems というディレクトリができ、「cd gems」とすると、リンク先のディレクトリ(/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems)に飛べるようになる。 シンボリックリンクを消したい時は、ディレクトリを消去すればおk。リンクを貼っているだけなので、元のディレクトリが消えちゃうなんてことはない。 $ ln -s /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems .
タイトルの通りですが、xargsコマンドの便利さを紹介する記事を書いてみました。xargsは私が大好きなコマンドの一つで、標準入力から渡されたファイル名などを引数とみなして、別のコマンドの引数として起動するというものです。 例えばfindで見つけたファイルを全部削除したい場合、xargsなしでも下記のように書くことができます。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く