rar is a proprietary format for file archiving and is developed by RARLAB. It distributes WinRAR for Windows and an aptly named rar tool for Linux to create and extract rar archives.

While WinRaR is a graphical program, rar is just a command-line utility.

rar is not installed by default in most Linux distributions. It's usually available in the distribution's default package manager's repository, and you can easily install it from the terminal.

Steps to create rar file in Linux:

  1. Launch a terminal application such as konsole or GNOME Terminal.
  2. Install RAR utility for your Linux distribution.

    $ sudo apt update && sudo apt install --assume-yes rar #Ubuntu and Debian

  3. Go to the base directory of files and folders that you want to archive.

    $ cd /home/user $ ls archive

  4. Create and compress a RAR archive of files and folders

    $ rar a archive.rar archive  RAR 5.50   Copyright (c) 1993-2017 Alexander Roshal   11 Aug 2017 Trial version             Type 'rar -?' for help  Evaluation copy. Please register.  Creating archive archive.rar  Adding    archive/folder-02/file-02                                   OK Adding    archive/folder-02/file-01                                   OK Adding    archive/folder-01/file-02                                   OK Adding    archive/folder-01/file-01                                   OK Adding    archive/folder-02                                           OK Adding    archive/folder-01                                           OK Adding    archive                                                     OK Done

    Other options for rar command:

    RAR 5.50   Copyright (c) 1993-2017 Alexander Roshal   11 Aug 2017 Trial version             Type 'rar -?' for help  Usage:     rar <command> -<switch 1> -<switch N> <archive> <files...>                <@listfiles...> <path_to_extract\>  <Commands>   a             Add files to archive   c             Add archive comment   ch            Change archive parameters   cw            Write archive comment to file   d             Delete files from archive   e             Extract files without archived paths   f             Freshen files in archive   i[par]=<str>  Find string in archives   k             Lock archive   l[t[a],b]     List archive contents [technical[all], bare]   m[f]          Move to archive [files only]   p             Print file to stdout   r             Repair archive   rc            Reconstruct missing volumes   rn            Rename archived files   rr[N]         Add data recovery record   rv[N]         Create recovery volumes   s[name|-]     Convert archive to or from SFX   t             Test archive files   u             Update files in archive   v[t[a],b]     Verbosely list archive contents [technical[all],bare]   x             Extract files with full path  <Switches><php>echo "<!-- Ezoic - sg-display-content-mid-01 - mid_content --><div id='ezoic-pub-ad-placeholder-122'></div><!-- End Ezoic - sg-display-content-mid-01 - mid_content -->"; </php>   -             Stop switches scanning   @[+]          Disable [enable] file lists   ad            Append archive name to destination path   ag[format]    Generate archive name using the current date   ai            Ignore file attributes   ap<path>      Set path inside archive   as            Synchronize archive contents   c-            Disable comments show   cfg-          Disable read configuration   cl            Convert names to lower case   cu            Convert names to upper case   df            Delete files after archiving   dh            Open shared files   ds            Disable name sort for solid archive   dw            Wipe files after archiving   e[+]<attr>    Set file exclude and include attributes   ed            Do not add empty directories   en            Do not put 'end of archive' block   ep            Exclude paths from names   ep1           Exclude base directory from names   ep3           Expand paths to full including the drive letter   f             Freshen files   hp[password]  Encrypt both file data and headers   ht[b|c]       Select hash type [BLAKE2,CRC32] for file checksum   id[c,d,p,q]   Disable messages   ierr          Send all messages to stderr   ilog[name]    Log errors to file (registered versions only)   inul          Disable all messages   isnd          Enable sound   iver          Display the version number   k             Lock archive   kb            Keep broken extracted files   log[f][=name] Write names to log file   m<0..5>       Set compression level (0-store...3-default...5-maximal)   ma[4|5]       Specify a version of archiving format   mc<par>       Set advanced compression parameters   md<n>[k,m,g]  Dictionary size in KB, MB or GB   ms[ext;ext]   Specify file types to store   mt<threads>   Set the number of threads   n<file>       Additionally filter included files   n@            Read additional filter masks from stdin   n@<list>      Read additional filter masks from list file   o[+|-]        Set the overwrite mode   oh            Save hard links as the link instead of the file   oi[0-4][:min] Save identical files as references   ol[a]         Process symbolic links as the link [absolute paths]   or            Rename files automatically   ow            Save or restore file owner and group   p[password]   Set password   p-            Do not query password   qo[-|+]       Add quick open information [none|force]   r             Recurse subdirectories   r-            Disable recursion   r0            Recurse subdirectories for wildcard names only   rr[N]         Add data recovery record   rv[N]         Create recovery volumes   s[<N>,v[-],e] Create solid archive   s-            Disable solid archiving   sc<chr>[obj]  Specify the character set   sfx[name]     Create SFX archive   si[name]      Read data from standard input (stdin)   sl<size>      Process files with size less than specified   sm<size>      Process files with size more than specified   t             Test files after archiving   ta<date>      Process files modified after <date> in YYYYMMDDHHMMSS format   tb<date>      Process files modified before <date> in YYYYMMDDHHMMSS format   tk            Keep original archive time   tl            Set archive time to latest file   tn<time>      Process files newer than <time>   to<time>      Process files older than <time>   ts[m|c|a]     Save or restore file time (modification, creation, access)   u             Update files   v<size>[k,b]  Create volumes with size=<size>*1000 [*1024, *1]   ver[n]        File version control   vn            Use the old style volume naming scheme   vp            Pause before each volume   w<path>       Assign work directory   x<file>       Exclude specified file   x@            Read file names to exclude from stdin   x@<list>      Exclude files listed in specified list file   y             Assume Yes on all queries   z[file]       Read archive comment from file

  5. View information of the newly created rar archive file.

    $ file archive.rar archive.rar: RAR archive data, v5 $ ls -lh archive.rar -rw-rw-r-- 1 user user 412 Nov  3 08:32 archive.rar