私の保管要件の性質のため、固定tar.gzアーカイブが気に入らず、代わりに7zを使用しました。
これを行うには、次のコマンドを使用します。
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=off ~/my/folder.7z ~/my/folder/*
~/my/folder/
すべてのコンテンツのファイルアーカイブを作成します~/my/folder.7z
。
しかし~/my/folder/.hiddenFolder
、それはあなたのアーカイブに入りません。この問題をどのように解決しますか?*
すべてのファイルとフォルダを返すべきではありませんか?
答え1
長い話を短く
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=off ~/my/folder.7z ~/my/folder/.
その他の例
ディレクトリ構造の例
test1
├── .hidden
└── normal.txt
0 directories, 2 files
次のコマンドを試してください
ルートフォルダとすべてのコンテンツ。
7za a test1_a.7z ~/test1/
与えられた
Date Time Attr Size Compressed Name ------------------- ----- ------------ ------------ ------------------------ 2017-08-06 09:23:51 D.... 0 0 test1 2017-08-06 09:23:44 ....A 0 0 test1/.hidden 2017-08-06 09:23:51 ....A 0 0 test1/normal.txt ------------------- ----- ------------ ------------ ------------------------ 2017-08-06 09:23:51 0 0 2 files, 1 folders
ルートフォルダと隠しファイルなし
7za a test1_b.7z ~/test1/*
与えられた
Date Time Attr Size Compressed Name ------------------- ----- ------------ ------------ ------------------------ 2017-08-06 09:23:51 ....A 0 0 normal.txt ------------------- ----- ------------ ------------ ------------------------ 2017-08-06 09:23:51 0 0 1 files
ルートフォルダはありませんが、隠しファイルが含まれています(私たちが一般的に望むものです)。
7za a test1_c.7z ~/test1/.
与えられた
Date Time Attr Size Compressed Name ------------------- ----- ------------ ------------ ------------------------ 2017-08-06 09:23:44 ....A 0 0 .hidden 2017-08-06 09:23:51 ....A 0 0 normal.txt ------------------- ----- ------------ ------------ ------------------------ 2017-08-06 09:23:51 0 0 2 files
答え2
単一のディレクトリの内容が必要な場合は、簡単な方法はまずそのディレクトリに変更することです。
cd ~/my/folder
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=off ~/my/folder.7z .
あなたが見ているのは、*
それがnotに拡張されることです.
。これは文書化された動作であり、名前がaで始まるファイルが隠されていると言う主な理由です.
(もう1つはデフォルトls
では表示されないことです)。
ディレクトリ内のすべてのファイルを一覧表示する本当に便利な移植可能な方法はありません。あなたはそれを使用することができます
~/my/folder/..?* ~/my/folder/.[!.]* ~/my/folder/*
ただし、パターンのいずれかに一致するファイルがない場合、パターンは拡張されていません。 Bashでは、dotglob
行間を特別に処理しないようにオプションを設定できます.
(.
そして..
まだ一致から除外されます)。
shopt -s dotglob
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=off ~/my/folder.7z ~/my/folder/*
extglob
kshまたはこのオプションが設定されている場合は、bashで(またはこのksh_glob
オプションが設定されている場合はzshで)、.
次のものを除くすべてのファイルと一致するパターンを作成できます..
。
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=off ~/my/folder.7z ~/my/folder/@(..?*|.[!.]*|*)
.
zshには、スキーマで特別な処理が行われるべきではないと言うより簡単な方法があります。
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=off ~/my/folder.7z ~/my/folder/*(D)
答え3
いいえ、*
すべてのファイルを返す必要はありません。見えるものだけを返します。
より簡単な解決策は次のとおりです。
cd ~/my/folder
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=off ~/my/folder.7z .
答え4
7z(Linux)を使用してzipアーカイブを抽出しましたが、フォルダはzipでいっぱいです。
私は以下を使用しました:
7z x *.zip -o* to extract the zip files
知っておくべきこと:7z a {上記のコマンドのフォルダ} -r
上記を念頭に置いて7z aコマンドを使用しますが、抽出セクションで作成されたフォルダ名を使用して7zアーカイブを作成したいと思います。では、どうすればいいですか?