シェルスクリプトマガジン

第8回 自動でアーカイビングする

 それでは、シェルスクリプトを1行ずつ見ていきましょう。4行目で、変数「archiving_mode」にアーカイブの形式を格納しています。アーカイブの形式は数値で指定するので、3行目のコメント行で、数値がどの形式に対応するのかを説明しています。「#」で始まる行はコメントです。

 6行目では、変数「backup_folder」にアーカイブ対象のファイルをフォルダごと格納するフォルダ名を、7行目では、変数「archive_folder」にアーカイブファイルを保存するフォルダ名を代入しています。ここを書き換えることで、自由にフォルダを変更できます。

 9行目で、「mkdir」コマンドでアーカイブファイルを保存するフォルダ名を作成しています。「-p」オプションを付けると、すでに同じフォルダが存在してもエラーになりません。

 11行目で、変数「backup_list」にアーカイビングの対象となるフォルダ名をリスト形式で格納しています。「$(」「)」で囲んだものは、第1回で説明した「コマンド置換」です。「cd」コマンドでアーカイビング対象のファイルを含んだフォルダを格納したフォルダに移動しています。「&&」は、直前のコマンドの実行に成功したときに直後のコマンドを実行するための接続記号です。

 ファイルやフォルダの一覧を表示する「ls」コマンドに「-p」オプションを指定すると、フォルダ名の末尾に「/」が付きます。「|」(パイプライン)で、ファイルやフォルダの一覧を「grep」コマンドに渡しています。「/$」は、末尾に「/」があることを表す文字列です。「$」は行末を示しています。このgrepコマンドによって、フォルダだけが選ばれます。さらに、この結果をパイプラインを使って、「tr」コマンドへ渡しています。trコマンドに「-d /」を指定することで、「/」が削除されてフォルダ名のみになります。