
rar을 사용하는 bash 명령이 있습니다
for folder in */; do rar a -m0 -r "${folder%/}.rar" "$folder"; done
나는부터 이해한다https://stackoverflow.com/questions/25299584/create-a-rar-archive-for-each-subdirectory-in-a-directory-centos-ubuntu 디렉토리의 각 하위 디렉토리에 대한 rar 아카이브를 생성합니다. 하지만 해당 링크에는 우분투가 포함되어 있습니다. Windows에서 어떻게 실행하는지 궁금합니다.
나는 Gnuwin32가 이전 버전의 프로그램으로 가득 차 있고 어쨌든 rar도 없다는 것을 알고 있습니다.
Cygwin은 최신 버전이지만 패키지 목록에 rar.exe를 포함하지 않습니다.
Cygwin에서 $rar을 실행하려고 하면 다음과 같이 표시됩니다.
rar: command not found
어떡해?
답변1
이를 수행할 수 있는 두 가지 방법이 있습니다. 한 가지 방법은 cygwin 없이 cmd.exe에서 rar.exe를 실행하는 것입니다. 그러나 bash가 아닌 배치로 실행되도록 명령을 조정해야 합니다.
다른 방법은 cygwin에서 rar.exe를 실행하는 것입니다. 그런 다음 bash 명령을 직접 사용할 수 있습니다. 우리는 그 길을 시도해 보겠습니다
cygwin 내에서 외부 실행 파일을 실행할 수 있습니다.
Windows에 대한 rar 명령을 매우 쉽게 얻을 수 있으며 다음과 같이 끝납니다.C:\Program Files\WinRAR\Rar.exe
rarlab.com/rar/winrar-x64-602.exe가 언급된 rarlab.com/download.htm에서 winrar를 설치합니다.
그런 다음 쉘의 경로 변수에 디렉토리를 추가하는 방법을 알아야 합니다. 그러면 어떤 디렉토리에서든 rar.exe를 실행할 수 있습니다. (귀하의 경우 cygwin을 사용한 이후에는 경로 변수에 디렉토리를 추가하는 bash 방법이 될 것입니다. )
그리고 찾아보면 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\WinRAR
rar.exe 명령줄을 사용하는 방법에 대한 설명서가 있을 것입니다.
$ /cygdrive/c/Program\ Files/WinRAR/Rar.exe | head -n 7
RAR 6.02 x64 Copyright (c) 1993-2021 Alexander Roshal 11 Jun 2021
Trial version Type 'rar -?' for help
Usage: rar <command> -<switch 1> -<switch N> <archive> <files...>
<@listfiles...> <path_to_extract\>
user@hp-probook1 ~
$ PATH=$PATH:/cygdrive/c/Program\ Files/WinRAR
user@hp-probook1 ~
$ /cygdrive/c/Program\ Files/WinRAR/Rar.exe | head -n 7
RAR 6.02 x64 Copyright (c) 1993-2021 Alexander Roshal 11 Jun 2021
Trial version Type 'rar -?' for help
Usage: rar <command> -<switch 1> -<switch N> <archive> <files...>
<@listfiles...> <path_to_extract\>
user@hp-probook1 ~
$ rar | head -n 7
RAR 6.02 x64 Copyright (c) 1993-2021 Alexander Roshal 11 Jun 2021
Trial version Type 'rar -?' for help
Usage: rar <command> -<switch 1> -<switch N> <archive> <files...>
<@listfiles...> <path_to_extract\>
user@hp-probook1 ~
$
이제 rar가 실행되고 있는 것을 볼 수 있습니다.
이제 명령이 여기서와 마찬가지로 잘 실행됩니다.
user@hppro ~
$ ls -l
total 3
drwxr-xr-x+ 1 user None 0 Aug 2 03:17 abcd_dir
drwxr-xr-x+ 1 user None 0 Aug 2 03:18 defgh_dir
-rwx------ 1 user None 86 Dec 24 2020 blahfile
user@hppro ~
$ for folder in */; do echo rar a -m0 -r "${folder%/}.rar" "$folder"; done
rar a -m0 -r abcd_dir.rar abcd_dir/
rar a -m0 -r defgh_dir.rar defgh_dir/
user@hppro ~
$
그리고 사용자가 보여준 것처럼 에코를 제거했습니다. 그리고 cygwin bash의 경로를 설정하고 rar.exe 명령줄을 포함하여 winrar를 설치한 후 해당 명령을 실행합니다.