答え1
これは、tar
パラメータに指定した方法でパス構造が生成されるために発生します。だからあなたが準拠。ソースとしてアーカイブも同じ構造で作成されます。
これを試してみることができます(注:これは隠しファイルと一致しません。):
tar -czvf ../myarchive.tar.gz *
n.stのコメントとzhouxの回答情報で更新されました。
tar --xform s:'^./':: -czvf ../myarchive.tar.gz ./
答え2
知りません。
name=${PWD##*/}
cd ..
tar czf "$name.tar.gz" "$name"
(注:シェルが現在のディレクトリシンボリックリンクトレースをオンにしていて、現在のディレクトリがシンボリックリンクを介してアクセスされている場合は機能しません。)
はい、それはあなたが要求したものではありませんが、あなたがしなければならないことです。現在のディレクトリに多くのファイルがあるアーカイブを拡張するのは面倒です。これは、アーカイブを解凍し、ファイルの宛先ディレクトリを作成するすべての人に負担をかけ、誤って空でないディレクトリに解凍するとクリーンアップが困難です。ほとんどの場合、アーカイブは名前がアーカイブのデフォルト名である最上位ディレクトリを作成する必要があります。
答え3
前に^を追加することをお勧めします。
tar --xform s:'^./':: -czvf ../myarchive.tar.gz ./
または、「/」がフルパス名の末尾にない限り、アーカイブ内のフルパス名のすべての「/」が削除されます。