부분적으로 J 로고가 있는 지퍼 [중복]

부분적으로 J 로고가 있는 지퍼 [중복]

나는 뛰고있어:

zip -r /var/www/html/example.com/temp/test.zip /var/www/html/example.com/files_to_zip/

작동하지만 완전한 디렉토리 구조를 제공합니다 /var. -j이 디렉토리를 삭제하라는 표시가 보이지만 디렉토리도 삭제됩니다. 디렉토리에서 내 zip을 재귀적으로 빌드할 수 있는 files_to_zip방법이 있습니까 ?files_to_zip

나는 달리고 Amazon Linux 2있고 를 zip사용하고 있습니다 Zip 3.0.

따라서 앞에서 설명한 동작은 다음과 같은 방식으로 설명할 수 있습니다.

exec('zip -r ' . $temp_dir . 'test.zip ' . $zip_dir . '/');
exec('zip -rj ' . $temp_dir . 'test.zip ' . $zip_dir . '/');

제공된 중복 및 답변을 기반으로 코드를 수정했습니다.

exec('(cd ' . $zip_dir . '; zip -r ' . $temp_dir . 'test.zip ' . $zip_dir . '/)'); 
exec('cd ' . $zip_dir . '; zip -r ' . $temp_dir . 'test.zip ' . $zip_dir . '/');

모든https://stackoverflow.com/a/1679060/3783243나는 또한 다음을 시도했습니다.

exec('(cd ' . $zip_dir . ' && zip -r ' . $temp_dir . 'test.zip ' . $zip_dir . '/)');
exec('cd ' . $zip_dir . ' && zip -r ' . $temp_dir . 'test.zip ' . $zip_dir . '/');

나는 또한 PHP 솔루션을 시도했습니다.

chdir($zip_dir);
exec('pwd', $result);
die(print_r($result));

결과가 반환되었습니다 $zip_dir.

동작은 동일합니다. 내 zip에는 /var. 코드가 실행될 때마다 zip 크기가 1바이트씩 증가합니다.

답변1

다음과 같은 것을 고려해보세요:

(cd /var/www/html/example.com; zip -r /var/www/html/example.com/temp/test.zip files_to_zip)

관련 정보