7zip Linux コマンドライン - ディレクトリを除外する

7zip Linux コマンドライン - ディレクトリを除外する

7zip を使用して Web サイトの .7z アーカイブを作成したいと考えています。いくつかのディレクトリには、バックアップする価値のない大きなファイル (数ギガバイト) が含まれていますが、すでにバックアップされています。特定のファイルまたはディレクトリのみをバックアップするように指定することもできますが、これを行うスクリプトを作成する予定です。新しいファイル、ファイルの種類、およびディレクトリを含めるためにスクリプトを更新し続けるのは少し面倒です。ドキュメントでディレクトリを除外してファイルのみをバックアップすることについて、どうしても何も見つけることができません。これを行う最も簡単な方法は何ですか?

以前(大きなファイルを避ける必要があった頃)私が使っていたコマンドは、単純に

7z a backup.7z *

作業ディレクトリで実行されます。

答え1

directoryファイルの種類です。man 7z読みにくいですが、次の内容が記載されています-x:

-x[r[-|0]]]{@listfile|!wildcard}
         

    Exclude filenames

次のようなディレクトリ ツリーがあるとします。

$ tree
.
├── dir
│   └── file3
├── dir1
│   └── file4
├── file1
└── file2

2 directories, 4 files

そして、私たちはそれを無視したいのですdirdir1

$ 7z a -x'!dir' -x'!dir1' b.7z  *

それを行った後:

$ 7z l b.7z
(...)
   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
2018-04-03 22:25:24 ....A            0            0  file1
2018-04-03 22:25:24 ....A            0            0  file2
------------------- ----- ------------ ------------  ------------------------
2018-04-03 22:25:24                  0            0  2 files

答え2

私の場合、構文が少し異なります。

NOW=`date +%Y-%m-%d-%H-%M-%S`
XX=`cat ~aaaaaazzzzzz/.gnupg2/passphrase-symmetric`
7z a                                           \
  -t7z -m0=lzma2 -mx=9 -mfb=64                 \
  -md=32m -ms=on -mhe=on -p${XX}               \
    '-xr!~/Documents/temp/'                    \
    '-xr!~/Documents/Sites/'                   \
    '-xr!**/*.zip'   '-xr!**/*.bz2'         '-xr!**/*.gz'   '-xr!**/*.7z'          \
    '-xr!**/*.pyc'   '-xr!**/__pycache__/**'                 \
    '-xr!**/*.gpkg'  '-xr!**/*.gramp' '-xr!**/*.ged'         \
    '-xr!**/*.log'   '-xr!*/venv/*' '-xr!*.sqlit*'  '-xr!*.bak'  '-xr!*.html~' '-xr!*.html~*'  \
    '-xr!*.vm'  '-xr!*.vmdk'  '-xr!*.vmem'  '-xr!*.vmsd'  '-xr!*.vmss'  '-xr!*.vmx'  '-xr!*.vmxf' \
    '-xr!*.mp4' '-xr!*.msf'                           \
    '-xr!*.htm' '-xr!*.html'                          \
   ${BACKUP_DIR}/data-encrypted/BackUp-${NOW}.7z      \
                    ~/Documents            \
                    ~/.ssh                 \
                    ~/.gnupg2              \
                    ~/.gnupg  

Linux / Ubuntuで実行しています

関連情報