---
name: "arj"
section: "1"
platform: "linux"
package: "arj"
version: "3.10.22-14"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/arj"
---

# arj(1)

Archiver for .arj files

## NAME

arj - Archiver for .arj files

## SYNOPSIS

**arj** *command* \[*-switch*\[*-*\|*+*\|*option*\]\] *archive*\[*.arj*\] \[*base directory*\] \[*!list name*\|*path name*\|*wildcard name*\]

## COMMANDS

- **ac**

  Add Chapter to chapter archive.

- **cc**

  Convert archive to Chapter archive.

- **dc**

  Delete last Chapter from archive.

- **a**

  Add files to archive.

- **b**

  execute Batch or dos command.

- **c**

  Comment archive files.

- **d**

  Delete files from archive.

- **e**

  Extract files from archive.

- **f**

  Freshen files in archive.

- **g**

  Garble files in archive.

- **i**

  check Integrity of the **arj** program.

- **j**

  Join archives to archive

- **k**

  remove obsolete bacKup files.

- **l**

  List contents of archive.

- **m**

  Move files to archive.

- **n**

  reName files in archive.

- **o**

  Order files in archive.

- **p**

  Print files to standard output.

- **q**

  recover damaged **arj** file.

- **r**

  Remove paths from filenames.

- **s**

  Sample files to screen with pause.

- **t**

  Test integrity of archive.

- **u**

  Update files to archive.

- **v**

  Verbosely list contents of archive.

- **w**

  Where are text strings in archive.

- **x**

  eXtract files with full pathname.

- **y**

  copY archive with new options.

## SWITCHES

- **c**

  skip time-stamp Check

- **e**

  Exclude paths from names

- **f**

  Freshen existing files

- **g**

  Garble with password

- **i**

  with no progress Indicator

- **m**

  with Method 0, 1, 2, 3, 4

- **n**

  only New files (not exist)

- **r**

  Recurse subdirectories

- **u**

  Update files (new and newer)

- **v**

  enable multiple Volumes

- **w**

  assign Work directory

- **x**

  eXclude selected files

- **y**

  assume Yes on all queries

- **hk**

  enable ARJ-PROTECT damage protection

## DETAILED SWITCHES

- **-**

  Disables switch char

- **+**

  Inhibits ARJ\_SW usage

  \+var: set environment variable

- **@**

  Set 1 token per response file line

- **!**

  Set list char (!)

- **&**

  Set batch critical error handler

- **#**

  Select files by number

- **$**

  Add/extract volume label

  $A: add/extract label to drive A

- **a**

  Allow any file Attribute

  a1: any files, directories and UNIX special files

- **b**

  Backup changed files

  ```
  b1: Backup changed, reset archive bits
  b2: only reset archive bits
  b3: reset archive bit during restore
  b4: do not restore bits, reset arc
  b5: do not restore any file attributes
  ```

- **c**

  Skip time-stamp Check

- **d**

  Delete added files asks permission before deleting

  ```
  d1: Delete without permission (same as arj m)
  d2: Truncate instead of deleting
  ```

- **e**

  Exclude paths from names

  e1: Exclude base dir from names

- **f**

  Freshen existing files

  ```
  f1: Freshen with OLDER files
  f2: Freshen with DIFFERENT files
  f3: Freshen with CRC mismatched files
  ```

- **g**

  Garble with password

  ```
  gstew: garble with password stew
  g?: prompt for password
  ```

- **i**

  Show no progress Indicator

  ```
  i1: show bar graph Indicator
  i2: show percentage and bar graph
  i3: total progress percentage
  i4: total progress bar graph
  i5: total percentage and bar graph
  i6: total percentage and file graph
  ```

- **k**

  Keep a .bak of **arj** archive

- **l**

  Create List\_name file

  l*names.list*: create *names.list*

- **m**

  With Method 0, 1, 2, 3, 4

  ```
  m0: store (no compression)
  m1: good compression (default)
  m2: less memory and compression
  m3: FAST! less compression
  m4: FASTEST! least compression
  ```

- **n**

  Only New files (not exist)

- **o**

  On or after YYYYMMDDHHMMSS

  ```
  o:       on today
  o19901225: on/after 12/25/1990
  ob: Before YYYYMMDDHHMMSS
  ob:       before today
  ob19901225: before 12/25/1990
  od: no older than N Days
  od5: five or less days old
  oa: After YYYYMMDDHHMMSS (last access)
  oa:       on today
  oa19901225: after 12/25/1990
  oab: Before YYYYMMDDHHMMSS (last access)
  oab:      before today
  oab19901225: before 12/25/1990
  oc: After YYYYMMDDHHMMSS (created)
  oc:       on today
  oc19901225: after 12/25/1990
  ocb: Before YYYYMMDDHHMMSS
  ocb:      before today
  ocb19901225: before 12/25/1990
  ```

- **p**

  Match using full Pathnames

  p1: match Pathname with subdirs

- **q**

  Query on each file

- **r**

  Recurse subdirectories

- **s**

  Set archive time-Stamp to newest

  ```
  s1: save original time-Stamp
  s2: set archive time-Stamp
  s3: save both original time-Stamps
  ```

- **t**

  Set file Type (default 0)

  ```
  t0: set binary file type
  t1: set C text file type
  t1f: force C text file type
  t1g: set C text with graphics
  ```

- **u**

  Update files (new + newer)

  ```
  u1: Update files (new + OLDER)
  u2: Update files (new + different)
  u3: Update files (new + CRC mismatch)
  ```

- **v**

  Enable multiple Volumes

  ```
  v360: build 362000 byte volumes
  v50K: build 50000 byte volumes
  va: auto-detect space available
  vd/tmp/*: delete /tmp/*
  ve: use alternate volume naming
  vi: inhibit diskette change test
  vr50K: reserve 50000 bytes of space on first volume
  vs: provide command prompt
  vscmd: execute cmd before each vol
  vv: beep between volumes
  vw: keep Whole files in volumes
  vz: provide command with no echo
  v360,v720,v1200,v1440: abbrevs Volume options may be in any order
         except s and z which must be last
  ```

- **w**

  Assign Work directory

  w*/tmp*: use */tmp* as work directory

- **x**

  eXclude selected files

  ```
  x*.sh: exclude *.sh files
  x!names: exclude files in names multiple exclusions are allowed
  ```

- **y**

  Assume Yes on all queries except diskette volume prompts\
       Use this switch for batch mode

- **z**

  Supply archive comment file **\_** Convert filenames to lower case

  ```
  zarc.cmt: use arc.cmt for comments
  z/dev/null: use to strip comments
  ```

## SHIFTED SWITCHES

- **h#**

  Append date string to name

  ```
  h#1: append time string to name
  h#2: append DHHMMSS to name (custom: h#{Y,M,D,N,h,m,s})
  h#YYYY-MMDD: append YYYY-MMDD
  ```

- **h$**

  Try to use longnames (Win2000)

- **h2**

  Obsolete synonym for -2 group of options

- **ha**

  Ignore readonly Attribute

- **hb**

  Select by file attribute/type

  ```
  a - archive bit set
  b - archive bit clear
  r - readonly
  s - system
  h - hidden
  d - directory
  n - normal file, not d,h,r,s,c,l
  c - chapter label
  l - volume label
  f - abbrev for n,d,r,s,h
  u - UNIX special files
  w - win95 long filenames
  hb: select all types
  hbsh: select hidden, system only
  hbd: select dirs only
  ```

- **hc**

  Execute Command at **arj** start

  hc**clear**: execute **clear**

- **he**

  Skip test of security Envelope

  he1: set error on security Envelope

- **hf**

  Set short filenames only

  ```
  hf1: set longnames in file comment or extract with w95lname.nnn
  hf2: use long filenames in DOS
  hf3: set longnames in file comment using shortname wildcards
  hf4: set all files archived in Windows as Windows long filenames
  ```

- **hg**

  Specify garble module filename

  ```
  hgarjcrypt.so: set arjcrypt.so as name of garble module
  hg!: specify use of 40 bit encryption
  ```

- **hi**

  Detailed display in Index files

- **hk**

  Build data protection record

- **hk**

  Default amount of recovery data

  ```
  hk1: more recovery data
  hk9: maximum amount of recovery data
       Disable ARJ-PROTECT when used with the "y" command
  ```

- **hl**

  Return error for Listfile error

- **hm**

  Increase file list capacity

  ```
  hm!: redirect -hm temp file
  hm! : move temp file to XMS mem
  hm!/tmp : move temp file to /tmp
  ```

- **hn**

  Specify non-existent filespec

  hn**####**: set **####** as filespec

- **ho**

  Only extract files with matches

  ho1: Only extract files without matches

- **hq**

  Ignore open access error on adds

  ```
  hq1: ignore open not found error on adds
  hq2: ignore access and not found on adds
  ```

- **hr**

  Try to ignore archive errors

- **hs**

  Disable file Sharing

- **ht**

  Set Target directory

  ht*/destdir*

- **hu**

  Allow Update of volume archives

- **hv**

  Check for **arj** version

- **hw**

  Scroll save search filename display

  hw1: display only filenames with matches

- **hx**

  Set default archive extensions

  hx*.arj.sdn*

- **hy**

  set **arj32** to use ANSI codepage set **arj** to extract ANSI codepage archive

  ```
  hy1: force arj32 to use OEM codepage
  hy2: force arj32 to use ANSI codepage
  ```

- **hz**

  Create an ARJ-SECURITY envelope

- **j#**

  Store only CRC and not the file

  ```
  j#1: store only date, size, attributes
  j#2: restore file attributes
  j#3: restore file dates
  j#4: restore file attributes and dates
  ```

- **j$**

  Do not process file DTA and DTC

- **ja**

  Set P command to display ANSI

  ja1: inhibit the display of comments

- **jb**

  Set chapter backup processing

  ```
  jb0: clear chapter archive status
  jb*: select all chapter backup files
  ```

- **jc**

  Exit after Count of files

  ```
  jc5: exit after 5 files
  jc nam1 nam2: exit after 2 files
  ```

- **jd**

  Ensure free Disk space

  ```
  e -jd50K: skip file if<50000 free
  l -jd1000: set error if<1000 free
  ```

- **je**

  Create self-extracting archive

  je1: create SFXJR archive

- **jf**

  Store/use Full specified path

  jf1: store/use path minus drive

- **jg**

  \[OBSOLETE\]

  jg1: \[OBSOLETE\]

- **jh**

  Set Huffman buffer size

  ```
  jh65535: set to 65535 bytes (max)
  jh2048: set to 2048 bytes (min)
  ```

- **ji**

  Create Index file

  ji*index.file*: create *index.file*

- **jk**

  Keep temp archive on error

- **jl**

  Display only filespecs

- **jm**

  Set Maximum compression mode

  jm1: set faster Maximum compression

- **jn**

  Restart volumes at fileName

  ```
  jn/bin/test: restart at /bin/test
  jn: get restart information from previously written index file
  ```

- **jo**

  Query when updating archive file

  ```
  jo: extract to unique Output names
  jo1: extract to unique Output names keeping file extension
  ```

- **jp**

  Pause after each screenful

  jp*50*: pause, set page size to *50*

- **jq**

  Set string parameter

  jq*string*: set parameter to *string*

- **jr**

  Recover broken archive files

  jr1: Recover badly broken archive files

- **js**

  Store archives by suffix (default is arj, arc, lzh, pak, rar, zip, zoo, j, and uc2).

  js*.zoo*: store only *.zoo* files

- **jt**

  Test temporary archive by CRC

  ```
  jt1: Test CRC and file contents
  jt2: Test only added file contents
  jt3: Test only file date-time and size
  ```

- **ju**

  Translate UNIX style paths

- **jv**

  Set Verbose display

  jv1: set special verbose list mode

- **jw**

  Set extract output filename

  jw*new.file*: output to *new.file*

- **jx**

  Start at eXtended position

  jx*10000*: start at position 10000

- **jy**

  Suppress queries assuming Yes

  ```
  a - skip append query
  c - skip create directory query
  d - skip delete files query
  k - skip disk space available query
  n - skip new filename prompt
  o - skip overwrite file query
  r - erase all type-ahead before query
  s - skip scanned enough text query
  v - skip proceed to next volume query
  y - accept single character Y/N/A/Q
  jycny: skip create, new name queries in single character
          input mode
  ```

- **jz**

  Supply file for file comment

  ```
  jzfile.cmt: use file.cmt for comments
  jz/dev/null: use to strip file comments
  ```

- **2a**

  Serialize names on extraction

- **2b**

  \[UNIX\] restrict to Block devices

  ```
  2b or 2b.: current device only
  2b-/usr: all except where /usr is located
  ```

- **2c**

  \[OS/2, NT\] handle Crit. EAs only

- **2d**

  **arj**/DOS compatibility mode

  2d1: (OBSOLETE) comment compatibility

- **2e**

  \[OS/2, NT\] filter Extended attrs

  ```
  2e.*: pack/unpack system EAs only
  2e.ICON?: pack/unpack icons only
  2e: disable EAs handling
  ```

- **2f**

  Disable comment serialization across multiple volumes

- **2h**

  \[UNIX\] Disable hardlink handling

  2h1: Extract hardlinks as symlinks

- **2k**

  Skip century display in dates

  2k1: use a non-ambiguous date display format

- **2l**

  \[OS/2, NT\] treat .LONGNAME EAs as filenames when possible

- **2o**

  \[UNIX\] store/restore file ownership

  2o1: Store numeric UID/GID values 2o2: Same as -2o but saves group as well

- **2p**

  Specify process Priority class

  ```
  OS/2, NT: 2p1...2p4
  Linux, FreeBSD: 2p1...2p41
  ```

- **2r**

  Revert directory Recursion order

- **2s**

  \[UNIX\] preserve Symlink properties

- **2x**

  \[OS/2, NT\]: eXclude extended attrs

  2x.ICON?: ignore icons

## DEFAULTS

```
Save path information in archive
Save long filenames
Save/restore extended attributes
Save/restore file date-time created and accessed in Win95 and OS/2
Save timestamps in the UNIX format under UNIX-like operating systems
Don't save drive and root in path information
Display comment ANSI sequences with built-in display handler
Prompt before overwriting output files
Use method 1 compression
Use binary mode
Use ! as list file symbol
The "ac" command is an abbreviation for "u -u2 -jb"
The "cc" command is an abbreviation for "y -jb"
The "dc" command is an abbreviation for "d -jb"
```

Under Win32, **arj** uses OEM codepage by default.  The **"-hy"** option sets **arj** to use the ANSI codepage which is the Windows graphical environment default. **arj**/Win32 self-extracting archives should be built using the **"-hy"** option.

To ensure compatibility with previous versions of **arj**, the **"-2d"** parameter has to be specified when archiving under UNIX.

## USER PROMPT RESPONSES

- **Yes**

  yes

- **No**

  no

- **Quit**

  abort out of **arj**

- **Always**

  always assume yes for current type of query

- **Skip**

  always assume no for current type of query

- **Global**

  always assume yes for all queries except diskette volume prompts

- **Command**

  prompt for and execute one system command

## ENVIRONMENT

**ARJ\_SW** = **-jyry -jv -i1**\
 **ARJ\_SW** = */etc/arj.cfg*

## EXIT STATUS

- **0**

  Success

- **1**

  Warning (specified file to add to archive not found, specified file to list, extract, etc., not found, or answering negatively to "OK to proceed to next volume..." prompt)

- **2**

  Fatal error

- **3**

  CRC error (header or file CRC error or bad password)

- **4**

  ARJ-SECURITY error or attempt to update an ARJ-SECURED archive

- **5**

  Disk full or write error

- **6**

  Cannot open archive or file

- **7**

  Simple user error (bad parameters)

- **8**

  Not enough memory

- **9**

  Not an **arj** archive

- **10**

  \[DOS\] XMS memory error (read or write)

- **11**

  User control break

- **12**

  Too many chapters (over 250)

## EXAMPLES

- Add files minus directory structure:

  **arj** a -e archive \*

- Add two files to archive:

  **arj** a archive *name1 name2*

- Add files to archive with verification:

  **arj** a -jt archive \*

- Add files with maximum compression:

  **arj** a -jm archive \*

- Add several directories of files:

  **arj** a archive ... *dir1 dir2 dir3*

- Add thousands of files to an archive:

  **arj** a -hm1 -r archive \*

- Add a chapter to an archive:

  **arj** ac archive */foo/dir/\** -r

- Comment archive header only:

  **arj** c archive -z*cmt.fil*

- Convert standard archive to chapter:

  **arj** cc archive

- Convert chapter archive to standard:

  **arj** y archive -jb0

- Delete the last chapter from an archive:

  **arj** dc archive \*

- Strip archive comment only:

  **arj** c archive -z*/dev/null*

- Extract files from archive:

  **arj** e archive

- Extract maintaining directory structure:

  **arj** x archive

- Extract new and newer files without query:

  **arj** e archive -u -y

- Extract subdirectory from archive:

  **arj** e archive *subdir/\** -p1

- Extract files to directory:

  **arj** x archive *destdir/* \*

- Extract files to directory:

  **arj** x archive \* -htdestdir

- Extract files to directory with space:

  **arj** x archive "*Some Dir/* "

- Extract files to directory with space:

  **arj** x archive "-ht*Some Dir*"

- Extract a Win95 archive to plain DOS:

  **arj** x archive -hf2

- List files in archive:

  **arj** l archive

- Move files to archive:

  **arj** m archive *\*.tex*

- Move files from archive:

  **arj** e -d archive *\*.tex*

- Recover files from a damaged archive:

  **arj** x archive -jr

- Test integrity of files in archive:

  **arj** t archive

- Test multiple **arj** archives:

  **arj** t *\*.arj* -hr

- Add files to a multiple volume archive:

  **arj** a -va */floppy/archive* \*

- Create up to 999 archive volumes:

  **arj** a -va */floppy/archive.001*

- Extract from a multiple volume archive:

  **arj** x -v */floppy/archive*

- Create a multiple volume self-extractor:

  **arj** a -va -je */floppy/archive* \*

- Convert archive to self-extractor:

  **arj** y -je1 archive

- Backup dir */foo* to dir */floppy*:

  **arj** a */floppy/backup* */foo* -a1 -b2 -r -vvas -w*/foo* -js -jt -hk

- Restore backup on dir */floppy* to dir */foo*:

  **arj** x */floppy/backup* */foo* -vv -y

## SELF-EXTRACTOR ARCHIVES

If the first two characters of an **arj** comment are "**))**" in a self-extractor, then the self-extractor will accept the appended line as its command line.

"**)) -o**" will force the self-extractor to overwrite existing files.

## SEE ALSO

[**rearj**(1)](/rearj/1.md), [**unarj**(1)](/unarj/1.md), [**arj-register**(1)](/arj-register/1.md).

## AUTHOR

This manual page was written by Ola Lundqvist \<opal@debian.org\> in pod format, then converted by Guillem Jover \<guillem@debian.org\> to nroff format.
