2013/01/05

[Daily][Bookmark] 01/04/2013

このエントリーをはてなブックマークに追加 0 comment
[ ]
  • tags: android

    • PARANOIDANDROID 0.9bの大きな機能追加点としては、タブレットモードとスマートフォンモードの切り替えが可能になったことでしょう。
       
       ナビゲーションバーやステータスバーはスマートフォンのレイアウトのままで、YoutubeやPlay Musicをタブレット表示にすることができます。
    • AOKPはとても高機能で便利で似たようなカスタムROMはたくさんありますが、全く違う切り口から開発されていて他に似たROMがないPARANOIDANDROIDは、これからどんな方向に進んでいくのかがとても楽しみなカスタムROMです。
  • tags: linux xargs

    • xargsを使った場合に上の2つの例とどう違うかというと、コマンド実行時の引数の制限を気にしつつ、rmにギリギリの個数のファイル名を渡して、必要最低限の回数だけ実行してくれます。100000ファイル一気にはrmできない場合でも、例えば25000ファイルづつに分けて4回rmしてくれます。安心かつ最速というわけで、xargsは便利ですよね!
    • レシピ1:カレントディレクトリ以下にある、最後の1文字が「~」である全てのファイルを「ls -la」する。 

        
      $ find . -name \*~ | xargs ls -la
    • このレシピは十分実用的な例です。xargsを利用してrmのような取り返しのつかないコマンドをいきなり実行するのは怖いので、「xargs rm」する直前に「xargs ls -la」などで対象ファイルを確認しておけばミスがありません。期待通りのファイルが「ls -la」されているのを確認した後で、シェルのヒストリを編集して「ls -la」を「rm」に書き換えて実行するわけです。
    • xargsコマンドは標準で空白文字(改行、スペース、タブなど)を区切り文字と見なします。このように空白文字を含むファイルがあると「./Hello」と「World.php~」のようにファイル名を2引数に分割してrmコマンドに渡してしまうため、期待通りに処理されません。これを解決する方法があります。 

        
      $ find . -name \*~ -print0 | xargs -0 rm
        

       こうすると、findの出力がヌル文字(0×00、別の表現をすると”\0″)で区切られて出力されます。また、xargsも引数がヌル文字で区切られているものとして処理を行います。その結果、空白文字を含んだファイル名も正常に処理できます。 

    • GNU coreutilsのcpやmvにはxargsと組み合わせて使うためのオプションが用意されています。coreutilsのinfoにも書いてありますが、「-t」または「–target-directory」オプションでdestinationのディレクトリを指定できます。 

        
      $ find . -name \*~ -print0 | xargs -0 mv -t /var/tmp
    • ブックマークコメントで、findの-print0とxargsの-0は伝統的UNIXの各コマンドには無いんじゃないか、というようなコメントを頂きました(現時点ではコメント削除されているかもしれませんが)。FreeBSDやMacOSX標準のfind/xargsには存在するみたいですけど、Solarisの各コマンドには無いみたいですね(今手元にSolarisマシンが無いので実際に確認はできていませんけど)。というわけで「Linux」タグを足しておきました。

Posted from Diigo. The rest of my favorite links are here.

0 件のコメント: