フォルダを.7zアーカイブに圧縮しようとしています。このフォルダには、フォルダの外にある他のもの(ディレクトリとファイルの両方)へのシンボリックリンクが含まれています。
どうやら7Zipはリンク自体をアーカイブするだけで、私が意図したものではありません。 7Zipに、リンク自体ではなく、リンク先のものをアーカイブするように指示する方法はありますか? (つまり、C:\stuff\foo
を指すシンボリックリンク名foo
がある場合、0バイトのシンボリックリンクではなく、fooの代わりにC:\stuff\foo
ディレクトリをアーカイブに含めたい。))
問題のファイルとフォルダーを追加する以外に、適切な回避策はありますか?シンボリックリンクを介して参照されるファイルは約10,000あるため、それらを個別に追加すると数時間かかることがあります。実際のファイルを含むステージングフォルダーを作成し、それを7Zipに渡すプログラムがある可能性があります。または、シンボリックリンクをより適切に処理するアーカイバだけです。
Windows Vistaを実行しています。すべてのリンクはシンボリックリンクです(例:mklink link target
およびmklink /D link target
で作成)。
編集:
より小さいテストディレクトリのdir
コマンド出力:
C:\...>dir
Volume in drive C is OS
Volume Serial Number is 0A3D-CD6E
Directory of C:\...
09/04/2010 18:12 <DIR> .
09/04/2010 18:12 <DIR> ..
09/04/2010 18:10 975 real file.txt
09/04/2010 18:11 <SYMLINK> test file.txt [..\test file.txt]
2 File(s) 975 bytes
4 Dir(s) 5,214,355,456 bytes free
7Zipを使用してその7zアーカイブを作成すると、real file.txt
が含まれますが、test file.txt
は0バイトのファイルとして追加されますが、リンクされているファイルは存在し、50KBです。
どうやら7Zipは自分自身のリンクをアーカイブしているだけで、私が意図したものではありません。 7Zipに、リンク自体ではなく、リンクするものもアーカイブするように指示する方法はありますか
いいえ、明らかに(残念ながら)そうではありません。これを要求する7Zipに関するバグレポートが実際にあります: http://sourceforge.net/tracker/?func=detail&aid=2846755&group_id=14481&atid=114481 2009年8月にオープンし、以降は触れられていません: -/。
失敗した場合、問題のファイルとフォルダーを追加する以外に、その周りに合理的なものはありますか?シンボリックリンクを介してのものを含めると、10000個のファイルがあり、その大部分はシンボリックリンクを介しているため、それらをすべて個別に追加すると数時間かかります...
十分なスペース(および時間)がある場合は、フォルダーのコピーを作成して、シンボリックリンクをターゲットに置き換えます。たとえば、 Robocopy とそのスイッチ/sl
を使用します。
/ slターゲットではなくシンボリックリンクをコピーします
注:混乱を避けるために、Linuxビルド p7Zip (7Zipのポート)にもバイナリ7z
があることに注意してくださいどのdoesは、シンボリックリンクが指すファイルのアーカイブをサポートします(スイッチ-l
)。ただし、Windows上の7Zipにはこのスイッチがありません。
2019年の時点で、7-ZipはWindowsでこの問題を解決しています。最新バージョンには、アーカイブにシンボリックリンクを含めるためのチェックボックスがあり、うまく機能します!