¿Cómo puedo ejecutar este comando bash, que usa la línea de comando rar/winrar, dentro de Windows?

¿Cómo puedo ejecutar este comando bash, que usa la línea de comando rar/winrar, dentro de Windows?

Tengo este comando bash que usa rar

for folder in */; do rar a -m0 -r "${folder%/}.rar" "$folder"; done

lo entiendo dehttps://stackoverflow.com/questions/25299584/create-a-rar-archive-for-each-subdirectory-in-a-directory-centos-ubuntu que crea un archivo rar de cada subdirectorio de un directorio. Pero ese enlace cubre ubuntu. Me pregunto cómo ejecutaría eso en Windows.

Entiendo que Gnuwin32 está lleno de versiones antiguas de programas y de todos modos ni siquiera tiene rar.

Cygwin es más nuevo pero no incluye rar.exe en su lista de paquetes.

Si intento incluso hacer $rar en cygwin, entonces dice

rar: command not found

¿Qué puedo hacer?

Respuesta1

Hay dos formas de hacer esto... una forma es ejecutar rar.exe desde cmd.exe sin cygwin. Pero entonces necesitarías ajustar tu comando para ejecutarlo por lotes en lugar de bash.

La otra forma es ejecutar rar.exe desde cygwin. Entonces puedes usar tu comando bash directamente. Probaremos esa ruta.

Puede ejecutar ejecutables externos desde cygwin.

puedes obtener el comando rar para Windows con bastante facilidad y termina enC:\Program Files\WinRAR\Rar.exe

Instale winrar desde rarlab.com/download.htm que menciona rarlab.com/rar/winrar-x64-602.exe

Luego, debe saber cómo agregar un directorio a la variable de ruta del shell, para poder ejecutar rar.exe desde cualquier directorio (y en su caso, desde que usa cygwin, esa sería la forma bash de agregar un directorio a la variable de ruta). )

Y si miras, C:\ProgramData\Microsoft\Windows\Start Menu\Programs\WinRARtendrá un manual sobre cómo usar la línea de comando 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 ~
$

Como ves, ahora tienes rar ejecutándose.

Y ahora su comando se ejecutará tan bien como aquí.

https://stackoverflow.com/questions/25299584/create-a-rar-archive-for-each-subdirectory-in-a-directory-centos-ubuntu

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 ~
$

Y como demostró el usuario, habiendo eliminado el eco. Y configuró la ruta de cygwin bash, instaló winrar, incluida la línea de comando rar.exe y luego ejecutó el comando.

ingrese la descripción de la imagen aquí

información relacionada