京橋のバイオインフォマティシャンの日常

南国のビーチパラソルの下で、Rプログラムを打ってる日常を求めて、、

Macで、DS_Storeとか、Rの隠しファイルをバッチファイル(.command)で削除するTips

Macで、フォルダごとファイルをアップロードしたときに、 一緒についてくる隠しファイルが邪魔と感じたことがあるのではないだろうか。

この記事では、シェル(sh)スクリプトのバッチ処理で、 DS_Storeとか、R関連の隠しファイルを削除するやり方を紹介する。

.commandのバッチファイルを作成する

まずは、任意のテキストエディタを使用して、 .commandの拡張子を持つターミナル実行のバッチファイルを作成する。

例えば、DS.commandとか、任意の名前をつける。

shスクリプトをコピペする

以下の#!/bin/bashから始まる、スクリプトをcommandファイル内にコピペする。

このスクリプトで、.commandファイルがあるディレクトリ下位の.DS_Store、.RData、.Rhistory、および.Rproj.userの隠しファイルが削除できる。

#!/bin/bash

MY_DIRNAME=$(dirname $0)
cd $MY_DIRNAME

du -a | grep .DS_Store | xargs rm -rf
du -a | grep .RData | xargs rm -rf
du -a | grep .Rhistory | xargs rm -rf
du -a | grep .Rproj.user | xargs rm -rf

exit

#!/bin/bashは、このスクリプトをbashで実行することを意味する。 MY_DIRNAME=$(dirname $0)の行で、ファイルがあるディレクトリパスをMY_DIRNAME変数に代入する。 cd $MY_DIRNAMEで、設定されたディレクトリに移動する。

du -a | grep .DS_Store | xargs rm -rf行の実行で、関連ファイルを削除する。 xargsは、その前の出力結果を受け取って、その次のrmコマンドの引数として受け渡すコマンドである。

また、grepのあとの引数を削除したい任意のファイル名の文字列に変えることで、 任意のファイルを削除できる。

.commandファイルに実行権限を与える

.commandファイルは、通常、ダブルクリックして実行するのだが、 作っただけだと、おそらく、実行権限がないとかで怒られるかもしれない。 そういうときには、chmod コマンドで、ユーザーに実行権限を与える。

例えば、DS.commandに実行権限を与えるには、ターミナルで以下のコマンドを実行する。

chmod +x DS.command

chmodの使い方については、以下の記事も参考のこと。

skume.net