私のホームフォルダ内のすべてのアイテムをtarでパッケージ化したいのですが、隠しフォルダやtest_tree(実際には他のフォルダ内に入れ子になっている)などの特定のフォルダを除外したいと思います。
次のコマンドを実行しようとしています。
tar -vcf everything.tar . --exclude='.*' --exclude='test_tree'
ホームディレクトリ内にありますが、cd ~
生成されたtarは完全に空です。どうしたの?
答え1
私も同じ問題があります。 --exclude='.*' MacOS ではうまく動作しますが、Linux では動作しません。あなたはできます、
tar -vcf everything.tar. --exclude='./.*' --exclude='テスト_ツリー'
または
tar -vcf everything.tar. --exclude='.[^/]*' --exclude='テスト_ツリー'
答え2
問題は、.
ソースコードとして使用し、tarで始まるすべての項目を除外するように指示することです。.
たとえば、絶対パスを試してみてください。すでにそのディレクトリにある場合は正しく機能します/home/user
。"$PWD"
答え3
最善の解決策は、問題の名前を含むファイルを集めて次のことを行うことです。
tar cf my-precious.tar -Xファイルの犯罪者。
(-XがGNUismかどうかはわかりませんが... GNU tarを使用しているようです。)
答え4
マッチ「隠しファイル」シェルスタイルモードを使用するには.[^.]*
。
.*
特殊ディレクトリエントリの一致.
(および)を使用してください..
。これは一般的に望むものではありません。