データを実行して収集し、このデータを別のスクリプトに供給するいくつかのスクリプトがあります。したがって、チェーン全体が自動化されます。自動化プロセスのある時点では、すべてのデータファイルがパッケージ化され、処理のために転送されます。私が使用するコマンドは次のとおりです。
tar -zchvf "$target_dir" -C "$data_dir" .
ここで target_dir は私の tarball の位置、 data_dir は私のデータの位置です。
今すべてがうまくいきますが、私のTarbolのファイルは次のようになります。
./file1
./file2
<etc>
後処理スクリプトは、これらのファイルの前の./のために混乱します。次のようになると予想されます。
file1
file2
<etc>
マニュアルページを見てみましたが、tarプロセスから先行する./を削除することについて本当に印象的ではありません。私が考えていることの1つは、スクリプトを次のように変更することです。
cd $data_dir; tar -zchvf "$target" *; cd -
しかし、これは私にとって非常に間違った感じで、私は他の愚かなものを見逃していると確信しています。
参考のためにbash v3.2.5を使用しています。
ベストアンサー1
gnu tarを使用している場合は、tarを入力しながらファイル名を編集できます。
$ mkdir -p a/b
$ cd a
$ tar cf - --transform='s:^./::' . | tar tvf -
drwxr-xr-x 0 2018-07-24 18:18 ./
drwxr-xr-x 0 2018-07-24 18:18 b/