ディレクトリ内のファイルを圧縮せずに複数のディレクトリ内のファイルのみを圧縮する方法は?

ディレクトリ内のファイルを圧縮せずに複数のディレクトリ内のファイルのみを圧縮する方法は?

私のテストフォルダの下には3つのフォルダがあります。

Test ----> dir1, dir2, dir3

dir1、dir2、dir3の下には多くのファイルがあります。ファイルだけを圧縮したいのですが、dir1、dir2、dir3は圧縮したくありません。

答え1

存在するTest

pax -w's|.*/||' dir[1-3]/* | xz > file.tar.xz

パスコンポーネントを持たないファイルはアーカイブされます。

これにより、dir[1-3]/*隠しファイルが省略されます。シンボリックリンクの場合、-sシンボリックリンクターゲットも書き換えられます。

欲しいなら定期的なファイル名に改行文字が含まれていないと仮定すると、ファイルが存在します。次のことができます。

find dir[1-3] -type f | pax -ws'|.*/||' | xz > file.tar.xz

ファイル名に改行文字を含めることができる場合、一部のシステムでは次のように書くことができます。

find dir[1-3] -type f -print0 | pax -w0s'|.*/||' | xz > file.tar.xz

findとはpax標準コマンドですが、YMMVではありません-print0-0

関連情報