例えば30日以内に更新された/etc以下のファイルをバックアップの為、別のディレクトリにコピーしたいというような欲求があります。
30日以内に更新された/etc以下のファイルのリストはfindコマンドで得られます。
$ find /etc -mtime -30 /etc /etc/sysconfig/hwconf /etc/prelink.cache /etc/reader.conf /etc/aliases.db /etc/mtab /etc/hosts /etc/printcap /etc/adjtime /etc/ld.so.cache /etc/lvm/cache /etc/lvm/cache/.cache
問題は、この結果をディレクトリ構造を保ったまま別のディレクトリにコピーしたいという事なのですが,cpコマンドのmanを見ていると、入力時に与えられたパスを保存する-Pオプションが見つかりました。これをxargsでつなげると以下になります。
# 30日以内に更新された/etc以下のファイル群を # ディレクトリ構造を保ったまま/backup_dirにコピー find /etc -mtime -30 | xargs -iX cp -P X /backup_dir
find + xargs + grepでlinux使えてる感!僕だけですか、そうですか。
関連する記事
タグ: linux

