.tar.gzファイルを作成するときにディレクトリを除外する


119

私は/public_html/フォルダを持っています。そのフォルダに/tmp/は、70 GBほど必要のないファイルが含まれているフォルダがあります。

今、私が作成しようとしています.tar.gz/public_html/を除きます/tmp/

これは私が実行したコマンドです:

tar -pczf MyBackup.tar.gz /home/user/public_html/ --exclude "/home/user/public_html/tmp/" 

タールはまだ作成されており、 ls -shことで、MyBackup.tar.gzすでに約30 GB ある/public_html/こと/tmp/がわかります。これがないと、ファイルが1 GBを超えないことがわかります。

何を間違えたのですか?



この-pオプションは、作成機能の点では意味がありませんよね!?
マーティンシュナイダー、

回答:


201

除外するディレクトリパスの最後の/を削除してみてください

tar -pczf MyBackup.tar.gz /home/user/public_html/ --exclude "/home/user/public_html/tmp" 

7
フォルダ全体とそのコンテンツを除外するには:tar -pczvf MyBackup.tar.gz / home / user / public_html / --exclude "/ home / user / public_html / tmp / *"
Dr.jacky

tar: Error exit delayed from previous errors.はmacosに入ります
prayagupd

エラーtarの取得:メンバー名から先頭の「/」を削除する
SenG

2
機能しません。--exclude="/home/user/public_html/tmp代わりに使用する必要がありました--exclude "/home/user/public_html/tmp
Black

1
編集できなくなった以前のコメントは無視してください。exclude最初にstackoverflow.com/users/3904223/oussaka notes として指定する必要があります。少なくとも、それが私にとってうまくいった唯一のことです
kghbln

46

--excludeインクルードの前にを移動してみてください。

tar -pczf MyBackup.tar.gz --exclude "/home/user/public_html/tmp/" /home/user/public_html/ 

おかげで、これは古いUbuntu 14.04 LTSボックスで動作しました。
Jamsi

1
OS Xでもこれを行う必要がありました。
TheJacobTaylor 2017

16

はい、末尾/を削除し、(少なくともubuntu 11.04では)指定されたすべてのパスは相対パスまたは完全パスでなければなりません。同じコマンドで絶対パスと相対パスを混在させることはできません。

sudo tar -czvf 2011.10.24.tar.gz ./start-directory --exclude "home/user/start-directory/logs"

ログディレクトリを除外しませんが

sudo tar -czvf 2011.10.24.tar.gz ./start-directory --exclude "./start-directory/logs"

動作します


1
exclude引数で絶対パスを削除するときに私のために働きます。
jruzafa 2015年

2
絶対パスと相対パスの混在に関するヒントは、ここで私にとって重要でした
Dmitri DB

12

圧縮からディレクトリを除外するための正しいコマンドは次のとおりです。

tar --exclude='./folder' --exclude='./upload/folder2' -zcvf backup.tar.gz backup/

ソースと宛先の項目の前--excludeを必ず付けてください。

解凍せずにtar.gzファイルの内容を確認できます。

tar -tf backup.tar.gz

3

これを試して

tar -pczvf advancedarts.tar.gz /home/user/public_html/ --exclude /home/user/public_html/tmp

2

1つだけを使用して、複数を除外することもでき--excludeます。この例のように:

tar -pczf MyBackup.tar.gz --exclude={"/home/user/public_html/tmp","/home/user/public_html/data"} /home/user/public_html/

--exclude=あなたなしでディレクトリ名を終了しなければならない/の間とする必要があります。MyBackup.tar.gzおよび/ホーム/ユーザー/ public_htmlの/

構文は次のとおりです。

tar <OPTIONS> <TARBALL_WILL_CREATE> <ARGS> <PATH_TO_COMPRESS>

2

受け入れられた回答は私にとってはうまくいきませんでした。Windows10でunxutils tarを実行しました。代わりに、次のように最後のパラメーターとしてアーカイブするファイル/ディレクトリを配置する必要がありました。

tar -pczf MyBackup.tar.gz --exclude "/home/user/public_html/tmp/" /home/user/public_html/

その後、うまくいきました。


2

これは私のために働きました:

tar -zcvf target.tar.gz target/ --exclude="target/backups" --exclude="target/cache"

2

tar -pczf <target_file.tar.gz> --exclude /path/to/exclude --exclude /another/path/to/exclude/* /path/to/include/ /another/path/to/include/*

Ubuntu 19.10でテスト済み。

  1. =後はexcludeオプションです。必要に応じて=、キーワードの後のスペースの代わりに使用できますexclude
  2. パラメータexcludeはソースの前に配置する必要があります。
  3. 使用フォルダー名(1番目など)と*(2番目など)の違いは、2番目にはパッケージに空のフォルダーが含まれますが、1番目には含まれません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.