- PR -

特定のグループ権限のみを圧縮したい

1
投稿者投稿内容
かなもの
ベテラン
会議室デビュー日: 2006/08/07
投稿数: 62
投稿日時: 2007-05-07 19:57
いつもココにはお世話になってます。

現在、ある特定の条件に当てはまるファイルを、
一つのファイルにtarで圧縮したいと考えています。
その条件は下記の通りです。
・ディレクトリ内の全ファイルが対象
・特定の所有グループであるファイル
・ハードリンクではないファイル

あるディレクトリには必ずハードリンクがあり、
そのファイルは除外したいと考えています。
又、ハードリンクではないファイルが格納されている
ディレクトリも含めたいとも考えています。(普通の圧縮ですね)

findコマンドで、とりあえず上記条件のファイルリストは取れるようになったのですが、
それを上手くtarコマンドに渡す方法が解りませんでした。

tar zcvf abc.tar.gz `find abc/ -group グループ名 -links 1`
とやってみたのですが、
bash: /bin/tar: Argument list too long
と怒られてしまいました。

何か方法は無いものでしょうか。
_________________
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2007-05-07 20:14
こんばんは。
xargs を使うなり、tar の -T ( --files-from ) オプションを使えば良さそうだと思います。
# ところで、「ハードリンクではないファイル」とは一体…?
# find で -links 1 を使うと、ハードリンクによる別名があるファイルは全て対象から漏れてしまいますが、それは良いのでしょうか?

[ メッセージ編集済み 編集者: angel 編集日時 2007-05-07 20:21 ]
かなもの
ベテラン
会議室デビュー日: 2006/08/07
投稿数: 62
投稿日時: 2007-05-08 14:19
レス有難う御座います。

引用:
xargs を使うなり、tar の -T ( --files-from ) オプションを使えば良さそうだと思います。


有難うございます。
xargsの使い方がわからないのですが、これから調べてみたいと思います。

引用:
# ところで、「ハードリンクではないファイル」とは一体…?
# find で -links 1 を使うと、ハードリンクによる別名があるファイルは全て対象から漏れてしまいますが、それは良いのでしょうか?


すいません。説明不足でした。
対象外のハードリンクのファイルは、管理側で作成したファイルになります。
ルールとして別名を使用していません。ですので、 -links 1 で対象が外れます。
かなもの
ベテラン
会議室デビュー日: 2006/08/07
投稿数: 62
投稿日時: 2007-05-09 16:02
詳細はまだ把握出来ていないのですが、自己解決したので、こちらに記します。

find abc/ -type f -group vuser -links 1 -print0 2>/dev/null | tar --null -T - -zcvf abc.tar.gz

-print0 や --null -T - の意味が、日本語man情報を見ても、まだ把握出来ていないでいますが、
NET上に情報がありました。

とりあえず、このコマンドでやっていきたいと思います。
_________________
1

スキルアップ/キャリアアップ(JOB@IT)