複数のテキストファイルをまとめて空にするLinuxコマンド
文字列が入力された複数のテキストファイルが特定のディレクトリに保存されている場合に、一気にテキストファイルの中身を空文字(サイズをゼロ)にしてしまう便利なコマンドを紹介します。
findコマンドでリストアップし「-exec」オプションを使う
答えは、findコマンドを使って空にしたいテキストファイルをリストアップし「-exec」オプションで空ファイル(/dev/null)をテキストファイルに対してcpコマンドでファイルコピーするです。
$ cd /path/to/files/dir
$ find . -name '*.txt' -exec cp /dev/null > {} \;
「-name」オプションで空にしたいテキストファイルを絞り込む
「-name」オプションは空にしたいテキストファイルを抽出するためのオプションなので、条件に一致させたいテキストファイルのルールを記述しておくと処理時間の節約になるのでオススメです。
空のテキストファイルは/dev/nullをコピーすることで実現
findコマンドは「-exec」という便利なオプションがあり、抽出したファイルのファイル名を引数にして異なるコマンド(今回はテキストファイルをコピーするためのcpコマンド)に渡して処理させることができます。
そこで「-exec」オプションで「cp」コマンドを利用し、空のテキストファイルを表わす「/dev/null」を抽出したテキストファイルへコピーすることで空文字のファイルに変換することができるわけです。
[試して理解]Linuxのしくみ ―実験と図解で学ぶOS、仮想マシン、コンテナの基礎知識【増補改訂版】
¥3,450 (2025-04-23 14:32 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)新しいLinuxの教科書 第2版
¥2,970 (2025-04-23 14:32 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)Windowsユーザーのための これから始めるLinuxの本 (日経BPパソコンベストムック)
¥2,420 (2025-04-23 14:32 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)2015-09-04