# man > FOLDER(1mh)

[_FOLDER_(1mh)](https://www.chedong.com/phpMan.php/man/FOLDER/1mh/markdown)                                                                              [_FOLDER_(1mh)](https://www.chedong.com/phpMan.php/man/FOLDER/1mh/markdown)

## NAME
       folder, folders - set/list current nmh folder/message

## SYNOPSIS


       **folder **[**-help**] [**-version**] [_+folder_] [_msg_] [**-all **| **-noall**] [**-create **| **-nocreate**] [**-fast **| **-no‐**
            **fast**] [**-header **| **-noheader**] [**-recurse **| **-norecurse**] [**-total **| **-nototal**] [**-list **| **-no‐**
            **list**] [**-push **| **-pop**] [**-pack **| **-nopack**] [**-print **| **-noprint**] [**-verbose **| **-noverbose**]

       **folders **is equivalent to **folder -all**

## DESCRIPTION
       When  **folder **is given the **-print **switch (the default), it lists: the current folder, the num‐
       ber of messages in it and their range (low-high), the folder's current message, and an  indi‐
       cation of extra files, if any.  For example:

            inbox+            has  16 messages (  3- 22); cur=  5.

       If  a  _+folder_  and/or _msg_ are specified, they will become the current folder and/or message.
       (When a _+folder_ argument is given, this corresponds to a “cd” operation in the shell; when no
       _+folder_ argument is given, this corresponds roughly to a “pwd” operation in  the  shell.)  If
### -noprint  
       and/or message, but the folder summary will not be printed.

       If the specified (or default) folder doesn't exist, **folder **will ask the user  if  the  folder
       should  be created; when standard input is not a tty, the answer is assumed to be “yes”.  The
### -create 
       create  an  empty  folder for later use.)  Specifying **-nocreate **will cause **folder **to print an
       error message and exit without creating a folder.

### Multiple Folders
       Specifying **-all **will produce a summary line for each top-level folder in the user's  **nmh  **di‐
       rectory, sorted alphabetically.  (If **folder **is invoked by a name ending with “s” (e.g.  **fold‐**
       **ers**),  **-all **is assumed.)  Specifying **-recurse **with **-all **will include a line for all sub-fold‐
       ers.  These folders are all preceded by any read-only folders, which occur as “_atr-cur-_”  en‐
       tries in the user's **nmh **context.  For example:

            FOLDER                  # MESSAGES RANGE      CUR     (OTHERS)
            /var/work/folder  has  35 messages ( 1- 35);  cur=23.
            /usr/bugs/Mail    has  82 messages ( 1-108);  cur=82.
            ff                has  no messages.
            inbox+            has  16 messages ( 3- 22);  cur= 5.
            mh                has  76 messages (15- 76);  cur=70.
            notes             has   2 messages ( 1-  2);  cur= 1.
            ucom              has 124 messages ( 1-124);  cur= 6; (others).
            TOTAL = 339 messages in 7 folders

       The  “+”  after _inbox_ indicates that it is the current folder.  The “(others)” indicates that
       the folder _ucom_ contains files which aren't messages; these may  either  be  sub-folders,  or
       files that don't belong under the **nmh **file naming scheme.

       The  header is output if either the **-all **or **-header **switches are specified.  It is suppressed
       by **-noheader**.

       The folder and message totals are output if either the **-all **or **-total **switches are specified.
       They are suppressed by **-nototal**.

       If **-fast **is given, only the folder name (or names, in the  case  of  **-all**)  will  be  listed.
       (This is faster because the folders need not be read.)

       If  a  _+folder_ is given with the **-all **switch, **folder **will, in addition to setting the current
       folder, list the top-level sub-folders for the current folder (with **-norecurse**) or  list  all
       sub-folders under the current folder recursively (with **-recurse**).

       If _msg_ is supplied, together with _+folder_ or without **-all**, it will become the current message
       of _+folder_ (if it had been supplied) or the current folder.

       The  **-recurse  **switch lists each folder recursively, so its use effectively defeats the speed
       enhancement of **-fast**, since each folder must be searched for sub-folders.  Nevertheless,  the
       combination of these options is useful.

### Compacting a Folder
       The **-pack **switch will compress the message names in the designated folders, removing holes in
       message  numbering.   The **-verbose **switch directs **folder **to tell the user the general actions
       it is taking to compress the folder.

### The Folder Stack
       The **-push **switch directs **folder **to push the current folder onto the  _folder-stack_,  and  make
       the _+folder_ argument the current folder.  If _+folder_ is not given, the current folder and the
       top  of  the  _folder-stack_  are  exchanged.  This corresponds to the “pushd” operation in the
       shell.

       The **-pop **switch directs **folder **to discard the top of the _folder-stack_, after setting the cur‐
       rent folder to that value.  No _+folder_ argument is allowed.  This corresponds to  the  “popd”
       operation  in the shell.  The **-push **and **-pop **switches are mutually exclusive: the last occur‐
       rence of either one overrides any previous occurrence of the other.  The  use  of  either  of
       these switches also sets **-list**, by default.

       The  **-list  **switch  directs **folder **to list the _folder-stack_.  No _+folder_ argument is allowed.
       After a successful **-push **or **-pop**, the **-list **action is taken, unless a **-nolist **switch  follows
       them on the command line.  This corresponds to the “dirs” operation in the shell.  The **-push**,
### -pop -list  -print 

## FILES
       $HOME/.mh_profile   The user's profile.

## PROFILE COMPONENTS
       Path:               To determine the user's nmh directory.
       Current-Folder:     To find the default current folder.
       Folder-Protect:     To set mode when creating a new folder.
       Folder-Stack:       To determine the folder stack.

## SEE ALSO
       [_mhpath_(1)](https://www.chedong.com/phpMan.php/man/mhpath/1/markdown), [_refile_(1)](https://www.chedong.com/phpMan.php/man/refile/1/markdown), [_rmf_(1)](https://www.chedong.com/phpMan.php/man/rmf/1/markdown)

## DEFAULTS
       +folder             The current folder.
       msg                 “none”
### -nofast
### -noheader
### -nototal
### -nopack
### -norecurse
### -noverbose
       -print              is the default if none of **-list**, **-push**, or **-pop **are specified.
       -list               is the default if **-push**, or **-pop **is specified.

## CONTEXT
       If _+folder_ and/or _msg_ are given, they will become the current folder and/or message.

## BUGS
       There  is no way to restore the default behavior (to ask the user whether to create a non-ex‐
       istent folder) after **-create **or **-nocreate **is given.

nmh-1.8                                      2016-08-29                                  [_FOLDER_(1mh)](https://www.chedong.com/phpMan.php/man/FOLDER/1mh/markdown)
