심볼릭 링크 및 7zip


18

폴더를 .7z 아카이브로 압축하려고합니다. 이 폴더에는 폴더 외부의 다른 항목 (디렉토리 및 파일 모두)에 대한 심볼릭 링크가 있습니다.

분명히 7zip은 내가 의도 한 것이 아닌 링크 자체를 보관합니다. 7zip에게 링크 자체가 아닌 링크 된 내용을 보관하고 싶다고 알리는 방법이 있습니까? ( foo을 가리키는 심볼릭 링크 이름이 있으면 0 바이트 심볼릭 링크가 아니라 foo 대신 아카이브에 디렉토리 C:\stuff\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링크 된 파일이 존재하고 50KB이지만 0 바이트 파일로 추가됩니다.


어떤 OS를 사용하고 있습니까?
Charles Gargent

2
"windows"태그를 사용하지 않는 것이 좋습니다. 잘 창을 사용하고 있습니다.
Fire Lancer

1
좋아, 어떤 버전의 창을 사용하고 있습니까?
Charles Gargent

@Fire Lancer : 일반적으로 텍스트의 태그 정보를 반복하는 것이 좋습니다. 쉽게 읽을 수 있지만 모든 사람이 태그를 보는 것은 아닙니다 (하단에 있음). 또한 태그가 오해하기 쉬울 수 있습니다. 예를 들어 Linux에 있지만 Windows와 상호 운용하고 싶기 때문에 "windows"라는 질문에 태그를 지정합니다.
sleske

1
7z는 <SYMLINKD> 및 <JUNCTION> 디렉토리를 아카이브하지만 <SYMLINK> 파일은 아카이브하지 않는 것처럼 보이므로 모든 파일을 디렉토리에 몰래 넣고 작동 할 수있는 심볼릭 링크가있을 수 있습니다.
hova

답변:


13

분명히 7zip은 내가 의도 한 것이 아닌 자체 링크를 보관합니다. 7zip에게 링크 자체가 아닌 링크 된 내용을 보관하고 싶다고 알리는 방법이 있습니까?

아니요, 안타깝게도 아닙니다. 이이 요청 7zip과에 버그 리포트 실제로 : http://sourceforge.net/tracker/?func=detail&aid=2846755&group_id=14481&atid=114481는 있지만 2009 년 8 월에 오픈 한 이후 손도 안 : - /.

문제가되는 파일과 폴더를 추가하는 것 외에 그 주위에 합리적인 것이 있습니까? 심볼릭 링크를 통해 물건을 포함하면 10 000 개의 파일이 있으며, 그중 대부분은 심볼릭 링크를 통해 모든 파일을 개별적으로 추가하는 데 몇 시간이 걸릴 것입니다 ...

충분한 공간과 시간이 있으면 폴더를 복사하여 심볼릭 링크를 대상으로 바꿀 수 있습니다. 예를 들어 Robocopy 와 스위치를 사용할 수 있습니다 /sl.

/ sl 대상 대신 심볼릭 링크를 복사합니다.


참고 : 그냥이의 리눅스 빌드 것을 참고 혼란을 피하기 위해 에 p7zip (7zip과의 포트)도 바이너리가 않습니다 지원 심볼릭 링크 포인트 (스위치에 파일을 보관 ). 그러나 Windows의 7zip에는이 스위치가 없습니다.7z-l


이것은 승인 된 답변이므로 실제 7zip이 -l스위처에서 수행한다는 것을 지적하고 싶습니다 . zip 및 gzip도 특정 명령으로 수행됩니다.
m3nda

@ erm3nda이 스위치는 어디에 있습니까? 참조하십시오.
마크

linux.die.net/man/1/7z l 옵션이 있으며 같은 글자를 가진 스위치도 있습니다. 이 옵션은 Windows 버전의 소프트웨어에는 존재하지 않습니다.
m3nda

@ erm3nda : 그렇습니다, 그러나 그것은 7zip의 포트 인 p7zip입니다. 지적 해 주셔서 감사합니다. 답변을 업데이트했습니다.
썰매

고맙습니다 Windows에이 기능이 없다고 믿을 수 없습니다. Windows의 심볼릭 링크가 상당히 다른 경우에도 작동하기 어려운 이유를 파악하지 마십시오.
m3nda

-1

Vista 이상을 사용하는 경우 심볼릭 링크를 제거하고 mklinks로 바꾸십시오.

mklink /D Directory FullPathToRealDirectory

mklink는 매우 강력하며 네트워크 공유 등에 대한 링크를 포함 할 수 있습니다.

이것에 약간의 혼동이있는 것 같으므로, 명확히하겠습니다. OP가 실제로 http://en.wikipedia.org/wiki/NTFS_junction_point에 설명 된대로 정션에 대해 이야기하고 있다고 가정합니다 . Mklink는 접합을 하지 않습니다 . TRUE 심볼릭 링크를 만들고 직접 시도했으며 7zip은 완벽하게 존중합니다. 또한 mklink 기호 링크를 작성하려면 관리자 여야합니다.

 Directory of C:\temp\t

04/08/2010  04:50 PM    <DIR>          .
04/08/2010  04:50 PM    <DIR>          ..
04/08/2010  04:31 PM    <SYMLINKD>     GB [c:\users\testuser]    <-- created by mklink
04/08/2010  04:50 PM    <JUNCTION>     GB2 [\??\c:\users\testuser] <-- created by junction
04/08/2010  04:29 PM                 8 test.txt

7zip은 GB를 아카이브하지만 GB2는 아카이브하지 않습니다. 편집 : 실제로 추가 테스트에 따르면 7zip은 버전 4.65를 사용하여 두 디렉토리를 모두 아카이브합니다. 그래서 나는 문제가 무엇인지 전혀 모른다.


1
모든 오리지널 심볼릭 링크가 Microsoft API와 mklik으로 처음 만들어 졌다면, 이것이 동일한 것을 리메이크하는 것 외에 어떻게 해결됩니까?
Fire Lancer

2
-1 문제가 어떻게 해결됩니까? 심볼릭 링크를 만드는 방법 만 설명합니다.
sleske

@hova : 그렇습니다. 모두 사실입니다 (MS는 일반적으로 심볼릭 링크를 "심볼릭 링크"만 호출하지만 정션은 "심볼릭 링크"라고하지 않습니다). 그러나 이것이 질문과 어떤 관련이 있습니까?
sleske

7zip 아카이브 SYMLINKD (mklink) 디렉토리!
hova

1
방금 Windows 7에서 7zip v15.14 (64 비트)로 일부 테스트를 수행했으며 7zip은 이제 디렉토리 symlinks를 따르지만 파일 symlinks에 대한 빈 파일 만 저장하는 것 같습니다. 매우 유용하지는 않습니다.
Bigue Nique
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.