PR

 今回は、Linuxコマンドを使ったファイル操作やネットワーク調査を紹介します。WindowsのGUIでは体験できない便利さを味わってください。

 Linuxのコマンドラインツールでファイルを検索する「find」コマンドを使うと、利用していないファイルを自動的に見つけ出せます。「tar」コマンドや「rm」コマンドを組み合わせると、見つけ出したファイルをまとめて圧縮したり削除したりできます。

Windowsで利用していないファイルをfindコマンドで見つけ出し、さらにアーカイブや削除を実行
Windowsで利用していないファイルをfindコマンドで見つけ出し、さらにアーカイブや削除を実行
[画像のクリックで拡大表示]

 findコマンドでは、「n日前」「n分前」「年月日」といったファイルが作成・更新された日付やタイミングを指定して検索できます。

findコマンドで指定できる時制の主なオプション
findコマンドで指定できる時制の主なオプション
[画像のクリックで拡大表示]

 一例を下図に示しました。合計5個の検索条件やオプションを指定しています。(1)は検索対象のパス、(2)は時制を指定するオプション、(3)は経過日数、(4)は見つかったファイルに対するアクション、(5)は見つかったファイルの展開方法の指定です。

 (5)の指定方法は「{} ¥;」と「{} +」の2パターンがありますが、(4)で指定したコマンドに応じて使い分けます。もし下図で(5)を「{} ¥;」と指定すると、最後に見つかったファイルだけがアーカイブされます。

過去30日間に更新しなかった音楽ファイルをまとめてアーカイブする方法
過去30日間に更新しなかった音楽ファイルをまとめてアーカイブする方法
[画像のクリックで拡大表示]

 先ほどの(4)で「rm」コマンドを使うと、見つかったファイルを一括削除できます。


$ find /mnt/c/Users/ユーザー名/Music -mtime +30 -exec rm {} \;

 指定する展開方法は、「{} \;」と「{} +」のいずれも同じ結果になります。ただし、削除するファイルが大量に見つかったときは時間的な差が生じるかもしれません。

 rmコマンドでは、確認してから削除を実行できるようにするため、エイリアスで「-i」オプションを指定することがよくあります。ところが、findで実行するrmコマンドで指定しても適用されません。確認しながら削除したいときは、findコマンドで「-i」オプションを指定します。rmコマンドの使い道の一つに、増え続けるログファイルを定期的にアーカイブすることがあります。

 最後に、findコマンドを定期的に実行する方法を紹介します。これはスクリプトを作成して実現できます。一例として、ログファイルを30分おきにアーカイブするスクリプトを、下の図に示しました。「C:¥logs」フォルダーにあるログファイルを「C:¥logs_arch」フォルダーに保存します。アーカイブしたファイルは実行時のタイムスタンプを含むファイル名で保存されます。

ログファイルを30分おきにアーカイブするためのスクリプト
ログファイルを30分おきにアーカイブするためのスクリプト
[画像のクリックで拡大表示]

Windowsのネット環境をLinuxコマンドで調査

 LinuxユーザーがUbuntu on Windowsを使う最大のメリットは、Windowsパソコンでありながら使い慣れたLinuxコマンドをそのまま利用できることにあります。それを強く実感できるのが、Linuxでも頻繁に利用するネットワーク関連のコマンドでしょう。

Windowsアプリやコマンドの代わりに、使い慣れたLinuxコマンドが利用できる
Windowsアプリやコマンドの代わりに、使い慣れたLinuxコマンドが利用できる
[画像のクリックで拡大表示]