はじめに
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の使い方
chmodの使い方については、以下の記事も参考のこと。