私は次のディレクトリ構造を持っています(ここに提供されているすべての名前はディレクトリであり、すべてファイルとサブディレクトリを含みます)。
a
a/a, a/b, a/c, ..., a/x, a/y, a/z
a/a/a, a/a/b, a/a/c, ..., a/a/x, a/a/y, a/a/z
a/b/a, a/b/b, a/b/c, ..., a/b/x, a/b/y, a/b/z
...
a/x/a, a/x/b, a/x/c, ..., a/x/x, a/x/y, a/x/z
この文字は説明用であり、実際の名前ではありません。また、深さは最大10個のサブディレクトリまで可変です。
私はディレクトリからツリー全体をtarしたいのですが、その下のすべてをa
除外x
したいと思います。a/x
a/a/x
a/b/x
使用を検討していますが、find
よりgrep -v
簡単な方法があるかどうか疑問に思います。
答え1
--exclude
@Kusalanandaのコメントのおかげで、GNU tarで提供されているオプションを使用できます。
指定されたディレクトリの下のすべての項目を除外するにはx
(ディレクトリ自体は除く):
tar cf a.tar --exclude='x/*' a
ディレクトリx
とその下のすべての項目を除外するには(ただし、指定された一般ファイルも除外されることに注意してくださいx
):
tar cf a.tar --exclude='x' a