shredコマンド

以前、「shredコマンドを使って、ハードディスクの内容を完全消去する」のページで、Linuxのshredコマンドの紹介をしました。

shredコマンドは、使い勝手は良いのですが、反面調子に乗って、間違えて消さなくていいファイルも消してしまったりと、取り扱い注意なコマンドなので、コマンドを実行する際は自己責任で行ってくださいとお話ししました。

shredコマンドは便利ですが、間違えてファイルを消去してしまったときのダメージも大きく、危険で取り扱い注意なコマンドなのは確かなのですが、shredコマンドを使用する時、自己ルールを決めておくことによって、ある程度、消去ミスの事故を未然に防ぐことができます。

今回はshredコマンドで消去ミスを起こさず安全に使う工夫についてのお話です。

専用のゴミ箱を作る

安全に使うには、どのようにするのかというと、shredコマンド専用のゴミ箱フォルダを作り、shredコマンドを、そのゴミ箱フォルダの中だけでしか動かないようにします。

そうすれば、不用意に隣のファイルを消してしまうミスも起こらず、安全にshredコマンドを運用できます。

専用のゴミ箱については、場所はどこでも置いていいですし、名前も何でもいいのですが、分かりやすくマイコンピュータ直下に「gomibako」フォルダを作成します。アドレスは「C:\gomibako」になります。

エクスプローラー1

shredコマンドを実行する

shredコマンドを実行する前に、消去用のファイルを置きます。ファイルは適当なファイルです。

エクスプローラー2

次にWSLのUbuntuを起動します。

スタート画面

ウインドウが開いたら、コンソールに「find "/mnt/c/gomibako" -type f -print0 | xargs -0 shred -u -v」とスクリプトを入力します。コピペでも入力できます。リターンキーを押して実行します。

シェルスクリプト1

ダーッと文字が表示されて、

シェルスクリプト2

処理が終了しました。gomibakoフォルダはどうなっているかというと、

エクスプローラー3

gomibakoフォルダ内にあるファイルは、完全に削除されていました。フォルダ名を変えない限り、何度でも処理してくれます。

パソコンを使い続けて、また不要になったファイルができたとしたら、gomibakoフォルダに不要ファイルを移動させて、またスクリプトを入力すれば、消去されます。

このスクリプトは、フォルダ内のファイルのみに実行されるので、他のファイルには影響せず、安全にファイルを消去することができます。

これからはファイルを削除する場合は、ゴミ箱経由で削除はせず、shredコマンドからファイルを消去するといいと思います。

以上、shredコマンドで消去ミスを起こさず安全に使う工夫でした。

スクリプトを関数化する

ここから先の話は、特にしなくてもshredコマンドで消去ミスを防ぐ目的には影響ありません。わからなくても問題ないです。スクリプト

「find "/mnt/c/gomibako" -type f -print0 | xargs -0 shred -u -v」

を毎回入力やコピペをするのが面倒なので、私は関数化して呼び出すようにしています。

myshred(){
  find "/mnt/c/gomibako" -type f -print0 | xargs -0 shred -u -v
}

この3行を.bashrcファイルに記入し、関数を呼び出しています。.bashrcファイルの場所は、

C:\Users\<ユーザー名>\AppData\Local\Packages\Canonical
GroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\<ユーザー名>\.bashrc

長いですが、アカウントを変更していないなら恐らくここにあります。.bashrcファイルをメモ帳で開いて、下の方の空いている所に、書き込み保存、Ubuntuを起動し、「myshred」と入力し、リターンキーを押すと、スクリプトが起動し、ファイルが消去されます。

メモ帳に記入。

bashrc

Ubuntu実行。

シェルスクリプト3

次回からは「myshred」と、関数を呼び出すようにすれば、次回から長いスクリプトを入力する必要がなくなります。

shredコマンドで消去ミスを起こさず安全に使う工夫