Linux:ファイルリストを元にファイルを削除する方法

作成したファイルリストを元に対象のファイルを削除する方法です。
今回はfindコマンドでファイルリストを作成し。
xargsコマンドでファイルを削除します。

フルパス(絶対パス)のファイルリストを作成する

対象となるファイルのファイルリストはフルパス指定で作成する必要があります。
(カレントディレクトリに移動するなどすれば相対パスでも問題ありませんが‥)

下記、サンプルです。
これで絶対パスによるファイルリストが作成されます。

$ mkdir /tmp/testDir
$ cd /tmp/testDir/
$ touch a b c d e f
$ find /tmp/testDir -daystart -type f > /tmp/filelist.txt
$ cat /tmp/filelist.txt
/tmp/testDir/a
/tmp/testDir/b
/tmp/testDir/c
/tmp/testDir/d
/tmp/testDir/e
/tmp/testDir/f

ファイルリストを元にxargsで削除する

作成したファイルリストを cat し、パイプで xargs に標準入力として渡し rm コマンドで処理します。

$ ls
a  b  c  d  e  f
$ cat /tmp/filelist.txt | xargs rm -v
removed `/tmp/testDir/a'
removed `/tmp/testDir/b'
removed `/tmp/testDir/c'
removed `/tmp/testDir/d'
removed `/tmp/testDir/e'
removed `/tmp/testDir/f'
$ ls
$ 

これでファイルが削除されました。

コメントを残す

メールアドレスが公開されることはありません。