~~Title: Copy ~~
The **Copy** internal command can be used to:
* Copy and move files and folders
* Create and add files to archives
* Extract files from archives
* Perform simple one-way file synchronization
* Create links, shortcuts and junctions
* Install fonts
* Send files via email
* Add items to [[:basic_concepts:virtual_file_system:file_collections|file collections]], and include folders in [[:basic_concepts:virtual_file_system:libraries|libraries]]
\\
**Command Arguments:**
$$ Argument
$$ Type
$$ Possible values
$$ Description
$$ ADDTOARCHIVE
$$ /O
$$ //(no value)//
$$ Displays the **[[:file_operations:creating_archives:add_to_archive_dialog|Add to Archive]]** dialog, to create an archive from the selected files. The dialog will default to creating a Zip file.
``Copy ADDTOARCHIVE``
The **CREATEFOLDER** argument can be used to change the default archive name.
``Copy ADDTOARCHIVE CREATEFOLDER="Backup"``
$$
$$
$$ ////
$$ Displays the **[[:file_operations:creating_archives:add_to_archive_dialog|Add to Archive]]** dialog with the archive type set to the specified format (given as the file extension of the desired format).
``Copy ADDTOARCHIVE=.rar``
The archive format can be optionally followed by parameters that are specific to the selected format. Currently the only format that defines optional parameters is Zip, those are listed below.
``Copy ADDTOARCHIVE=.zip,fullpaths``
You can also use this command to create a self-extracting archive from the selected files, with the following arguments:
``Copy ADDTOARCHIVE=.zip+sfx``
$$
$$
$$ **fullpaths**
$$ When creating Zip archives, this turns on the //Save full file paths// option by default.
``Copy ADDTOARCHIVE=.zip,fullpaths``
$$
$$
$$ **nofullpaths**
$$ When creating Zip archives, this disables the //Save full file paths// option.
``Copy ADDTOARCHIVE=.zip,nofullpaths``
$$
$$
$$ **keepfolder**
$$ Modifies the behaviour when only a single folder is selected - instead of the items within the folder being added, the folder itself will be added to the archive.
``Copy ADDTOARCHIVE=.zip,keepfolder``
$$
$$
$$ **nokeepfolder**
$$ Adds the contents of the folder when only a single folder is selected.
``Copy ADDTOARCHIVE=.zip,nokeepfolder``
$$
$$
$$ **comp:**////
$$ Specifies the compression level when creating Zip archives. You can use one of the keywords **store**, **fastest**, **fast**, **normal**, **good** and **best**, or provide a number from 0 to 19. Numbers 10 and above enable enhanced compression; otherwise the **enhanced** or **noenhanced** keywords can also be used to override the default.
``Copy ADDTOARCHIVE=.zip,comp:best,enhanced``
$$
$$
$$ **split:**////
$$ When creating Zip archives, this sets the default value for the //Split archive// option.
``Copy ADDTOARCHIVE=.zip,fullpaths,split:2.5MB``
$$
$$
$$ **nosplit**
$$ When creating Zip archives, this disables the //Split archive// option.
``Copy ADDTOARCHIVE=.zip,nosplit,nofullpaths``
$$ ARCHIVE
$$ /O
$$ //(no value)//
$$ Adds all selected files and folders to a Zip file named after the first selected item. Note that if only a single folder is selected, the items //within// that folder are added rather than the folder itself - this prevents you from ending up with a Zip file containing an unnecessary sub-folder.
``Copy ARCHIVE``
The **CREATEFOLDER** argument can be used to change the default archive name.
``Copy ARCHIVE CREATEFOLDER="Backup"``
$$
$$
$$ ////
$$ Adds all selected files and folders to an archive of the specified format. The archive format can be optionally followed by parameters that are specific to the selected format - see **ADDTOARCHIVE** above for a list of these.
``Copy ARCHIVE=.rar``
$$
$$
$$ **single**
$$ Each selected item will be added to its own archive, rather than all items being added to the one archive. Note that any **CREATEFOLDER** argument will be ignored, since multiple archives will be created and named automatically after each item.
``Copy ARCHIVE=single``
$$
$$
$$ **keepfolder**
$$ Modifies the behaviour when only a single folder is selected - instead of the items within the folder being added, the folder itself will be added to the archive.
``Copy ARCHIVE=keepfolder``
$$
$$
$$ **nokeepfolder**
$$ Adds the contents of the folder when only a single folder is selected.
``Copy ARCHIVE=nokeepfolder``
$$ AS
$$ /O
$$ //(no value)//
$$ When copying or moving files, you will be prompted to enter a new name for each file.
``Copy MOVE AS``
$$
$$
$$ ////
$$ Specifies the new name or [[:file_operations:copying_moving_and_deleting_files:copying_using_the_toolbar_buttons:using_wildcards_when_copying|wildcard pattern]] for the copied or moved files. This only changes the names; if you want to specify the destination path, use the **TO** argument.
``Copy AS *.bak HERE``
$$ AUTOSELECT
$$ /K
$$ **yes**
$$ Overrides the state of the //Automatically select newly copied files// option on the **[[:preferences:preferences_categories:file_operations:copying_files|Copying Files]]** Preferences page. Newly copied files will always be selected.
``Copy DUPLICATE AUTOSELECT=yes``
$$
$$
$$ **no**
$$ Newly copied files will not be selected, no matter what the //Automatically select newly copied files// option is set to.
``Copy AUTOSELECT=no``
$$ BUFSIZE
$$ /K/N
$$ ////
$$ Overrides the **copy_buffer_size** setting on the **[[:preferences:preferences_categories:miscellaneous:advanced_options|Miscellaneous / Advanced]]** page in Preferences. The buffer size is specified in bytes, if no units are specified, and you can also use KB, MB and GB to specify larger sizes.
This buffer is in addition to any buffering provided by the filesystem, hardware, and so on; it is not connected to the non-buffered IO mode controlled by the **NONBUFIO** argument and **copy_nonbufferio_threshold** Preferences option.
``Copy BUFSIZE 128KB``
This has no effect when doing simple file-to-file copies and delegating to the very-high-level Windows file-copy API, since that API performs its own buffering. See the **DELEGATE** argument for more detail.
$$ BURNCD
$$ /S
$$ //(no value)//
$$ Invokes the system CD Burning Wizard, which initiates burning of any files you have previously copied to the CD staging area.
``Copy BURNCD``
$$ CLEARREADONLY
$$ /K
$$ **yes**
$$ Clear the read-only attribute. When copying files from a CD this overrides the **Clear read-only flag when copying from CDs** option on the **[[:preferences:preferences_categories:file_operations:copying_files:attributes|Copying Files / Attributes]]** Preferences page.
``Copy CLEARREADONLY=yes``
$$
$$
$$ **no**
$$ Do not clear the read-only flag when copying files.
``Copy CLEARREADONLY=no``
$$ COLLLIST
$$ /S
$$ //(no value)//
$$ Displays a dynamically generated list of [[:basic_concepts:virtual_file_system:file_collections|file collections]] - you can add selected files and folders to a file collection simply by selecting it from this list. Acts as a [[:customize:creating_your_own_buttons:editing_the_toolbar:dynamic_buttons|dynamic button]]. Most useful when used in a drop-down menu or on a [[:file_types:filetype_editor:context_menu|context menu]].
``Copy COLLLIST``
$$ COPYATTR
$$ /K
$$ **yes**
$$ Preserves file attributes when copying files or folders.
Overrides the **Copy file attributes** option on the **[[:preferences:preferences_categories:file_operations:copying_files:attributes|Copying Files / Attributes]]** Preferences page.
``Copy COPYATTR=yes``
$$
$$
$$ **no**
$$ Do not preserve file attributes (the newly copied file will have the default file attributes for a newly created file).
``Copy COPYATTR=no``
$$ COPYDESC
$$ /K
$$ **yes**
$$ Preserves file descriptions when copying files or folders, when the descriptions are not stored within NTFS ADS or when NTFS ADS is not otherwise being copied.
Overrides the **Copy file descriptions (if not in ADS, or not already copying ADS)** option on the **[[:preferences:preferences_categories:file_operations:copying_files:attributes|Copying Files / Attributes]]** Preferences page, where the option and NTFS ADS are described in detail.
``Copy COPYDESC=yes``
$$
$$
$$ **no**
$$ Do not preserve file descriptions beyond what may be done if NTFS ADS are being copied.
``Copy COPYDESC=no``
$$ COPYDIRTIMES
$$ /K
$$ **all**
$$ Preserves the Modified and Created timestamps of copied folders.
Overrides the **Copy timestamps** option on the **[[:preferences:preferences_categories:file_operations:copying_files:attributes|Copying Files / Attributes]]** Preferences page and the **no_copy_dir_dates** option on the **[[:preferences:preferences_categories:miscellaneous:advanced_options|Miscellaneous / Advanced]]** Preferences page.
``Copy COPYDIRTIMES=all``
In all cases, the Accessed timestamp is handled the same as the Modified timestamp. Accessed timestamps are not mentioned explicitly because they are a legacy feature of Windows that are not usually worth thinking about.
$$
$$
$$ **none**
$$ Prevents preservation of the Modified and Created timestamps of copied folders; instead, the timestamps will be reset to the date and time the copy is made.
``Copy COPYDIRTIMES=none``
$$
$$
$$ **onlymodified**
$$ Preserves the Modified timestamps while preventing preservation of the Created timestamps of copied folders.
``Copy COPYDIRTIMES=onlymodified``
$$
$$
$$ **onlycreated**
$$ Preserves the Created timestamps while preventing preservation of the Modified timestamps of copied folders.
``Copy COPYDIRTIMES=onlycreated``
$$ COPYFILETIMES
$$ /K
$$ **all**
$$ Preserves the Modified and Created timestamps of copied files.
Overrides the **Copy timestamps** option on the **[[:preferences:preferences_categories:file_operations:copying_files:attributes|Copying Files / Attributes]]** Preferences page.
``Copy COPYFILETIMES=all``
In all cases, the Accessed timestamp is handled the same as the Modified timestamp. Accessed timestamps are not mentioned explicitly because they are a legacy feature of Windows that are not usually worth thinking about.
$$
$$
$$ **none**
$$ Prevents preservation of the Modified and Created timestamps of copied files; instead, the timestamps will be reset to the date and time the copy is made.
``Copy COPYFILETIMES=none``
$$
$$
$$ **onlymodified**
$$ Preserves the Modified timestamps while preventing preservation of the Created timestamps of copied files.
``Copy COPYFILETIMES=onlymodified``
$$
$$
$$ **onlycreated**
$$ Preserves the Created timestamps while preventing preservation of the Modified timestamps of copied files.
``Copy COPYFILETIMES=onlycreated``
$$ COPYOWNER
$$ /K
$$ **local**
$$ Copy file owner information, when the copy takes place between local drives only.
Overrides the **Copy owner** and subordinate **Local drives only** options on the **[[:preferences:preferences_categories:file_operations:copying_files:attributes|Copying Files / Attributes]]** Preferences page.
Note that setting the file owner requires elevation and may produce a UAC prompt.
``Copy COPYOWNER=local``
$$
$$
$$ **all**
$$ Copy file owner information for all drives, not just local ones.
``Copy COPYOWNER=all``
$$
$$
$$ **no**
$$ Do not copy file owner information.
``Copy COPYOWNER=no``
$$ COPYPROPERTIES
$$ /K
$$ **yes**
$$ Always copy NTFS ADS properties/metadata when copying files and folders.
Overrides the **Copy NTFS ADS** option on the **[[:preferences:preferences_categories:file_operations:copying_files:attributes|Copying Files / Attributes]]** Preferences page, where the three options are explained in detail.
``Copy COPYPROPERTIES=yes``
$$
$$
$$ **no**
$$ Always remove NTFS ADS metadata when copying files.
``Copy COPYPROPERTIES=no``
$$
$$
$$ **fastest**
$$ Copy NTFS ADS metadata when copying files, unless it is slower to do so.
``Copy COPYPROPERTIES=fastest``
$$ COPYSECURITY
$$ /K
$$ **yes**
$$ Copy security permissions when copying files between NTFS drives.
Overrides the **Copy security permissions** option on the **[[:preferences:preferences_categories:file_operations:copying_files:attributes|Copying Files / Attributes]]** Preferences page.
``Copy COPYSECURITY=yes``
$$
$$
$$ **no**
$$ Do not copy security permissions. Newly copied files will inherit the default security permissions of the destination folders.
``Copy COPYSECURITY=no``
$$ COPYSPARSE
$$ /K
$$ **yes**
$$ Recreate sparse regions in the copied file (when the source file is sparse).
Overrides the **Copy sparse files as sparse** option on the **[[:preferences:preferences_categories:file_operations:copying_files:attributes|Copying Files / Attributes]]** Preferences page.
``Copy COPYSPARSE=yes``
$$
$$
$$ **no**
$$ Do not recreate sparse regions in the copied file. Newly copied files will occupy their full size on disk.
``Copy COPYSPARSE=no``
$$ COPYTOCOLL
$$ /K
$$ **member**
$$ When copying (adding) folders to a [[:basic_concepts:virtual_file_system:file_collections|file collection]], add them as members of the collection (overrides the **When copying folders to a Collection** option on the **[[:preferences:preferences_categories:file_operations:copying_files:confirmation|Copying Files / Confirmation]]** Preferences page).
``Copy COPYTOCOLL=member``
$$
$$
$$ **sub**
$$ Copy folders to collections as sub-collections (the contents of the folder will be added as member items to the newly created sub-collection).
``Copy COPYTOCOLL=sub``
$$
$$
$$ **ask**
$$ Ask how to copy folders to collections.
``Copy COPYTOCOLL=ask``
$$ CREATEFOLDER
$$ /O
$$ //(no value)//
$$ Prompts for the name of a new folder and copies the selected files and folders into that folder.
``Copy CREATEFOLDER``
$$
$$
$$ ////
$$ Creates a new folder with the specified name and copies selected items into that folder. You can specify an absolute path, or just a name - if only a name is provided the folder is created in the destination (or source if the **HERE** argument is also specified). You can also use the [[..:external_control_codes|external control codes]] to (for example) automatically create a folder based on the current date.
``Copy CREATEFOLDER "Backup-{date|yyyyMMdd}"``
When archiving files, this specifies the name of the archive to create or update. (If you don't specify an archive name it will default to the name of the first selected file, without its extension, or the name of the current folder if no file selection is used.). The example below adds the selected files to an archive called "Cat Photos.zip" below the current folder:
``Copy HERE ARCHIVE=.zip CREATEFOLDER="Cat Photos"``
You can combine this with the **READAUTO** argument to have the newly created folder automatically read into the current or another tab.
$$ DELEGATE
$$ /K
$$ **yes**
$$ Overrides the **copy_allow_delegation** setting on the **[[:preferences:preferences_categories:miscellaneous:advanced_options|Miscellaneous / Advanced]]** page in Preferences. Delegation to the very-high-level Windows file-copying API will be allowed, and custom file-copying code will only be used when required. (This is the normal behavior. Specifying **DELEGATE=yes** is redundant unless you have changed the default Preferences setting and want a particular command to revert back to normal.)
$$
$$
$$ **no**
$$ Overrides the **copy_allow_delegation** setting the opposite way: Custom file-copying code will always be used, even when it is not required. (Not recommended outside of very special cases.)
``Copy DELEGATE=no``
$$ DUPLICATE
$$ /S
$$ //(no value)//
$$ Create duplicates of the selected items in the same folder. You will be prompted to enter new names (or a [[:file_operations:copying_moving_and_deleting_files:copying_using_the_toolbar_buttons:using_wildcards_when_copying|wildcard pattern]]) for the duplicated files.
``Copy DUPLICATE``
$$ EXTRACT
$$ /O
$$ //(no value)//
$$ Extracts the contents of selected archives to the destination folder. You can also use this with folders to copy their contents without copying the folder itself.
``Copy EXTRACT``
$$
$$
$$ **sub**
$$ Creates a sub-folder in the destination named after the archive, and extracts the archive contents to that folder.
``Copy EXTRACT=sub``
$$
$$
$$ **checkout**
$$ Extracts the contents of an archive to a temporary folder and automatically opens that folder in a new Lister. You can use this to "check out" the files in an archive before you decide if and where you want to extract them to. Note that this command only works when you are inside the archive itself (e.g. double-click a .zip file to enter it, and then run the "checkout" command to extract it).
``Copy EXTRACT=checkout``
$$ FILE
$$ /M
$$ // ...//
$$ Specifies the name of the file or files to copy. If you don't provide this argument the command operates on all selected items in the source Lister. This is the default argument for the **Copy** command - you don't need to specify the **FILE** keyword.
If you only specify the filename instead of the full path of the file or files, Opus will look in the current source folder. You can also specify a [[..:..:wildcard_reference:pattern_matching_syntax|wildcard pattern]]. Remember that if the filename contains spaces you need to enclose it in quotes.
``Copy "C:\Data Directory\*.xls" TO /desktop``
$$ FILTER
$$ /O
$$ //(no value)//
$$ Copies with filtering enabled (without having to activate the [[:file_operations:filtered_operations|copy filter]] in the Lister first). Opus will prompt you to define the filter.
``Copy FILTER``
$$
$$
$$ ////
$$ Copies using the specified filter. This must have previously been created from the **[[:preferences:preferences_categories:filtering_and_sorting:filters|Filters]]** page in Preferences. You can also directly specify a [[..:..:wildcard_reference:pattern_matching_syntax|simple wildcard pattern]]
``Copy FILTER *.(jpg|png)``
$$
$$
$$ **shift**
$$ Copies with filtering enabled if the **Shift** key is held down. Opus will prompt you to define the filter.
``Copy FILTER=shift``
$$
$$
$$ **alt**
$$ Copies with filtering enabled if the **Alt** key is held down.
``Copy FILTER=alt``
$$
$$
$$ **ctrl**
$$ Copies with filtering enabled if the **Ctrl** key is held down.
``Copy FILTER=ctrl``
$$ FILTERDEF
$$ /K/R
$$ ////
$$ Lets you define a filter in [[:file_operations:filtered_operations:textual_filters|text format]] to filter the contents of copied folders. This is similar to the **FILTER** argument, however the filter does not need to be predefined.
This is a **/R** argument and so everything after the **FILTERDEF** keyword will be treated as the argument's value.
``Copy FILTERDEF name match *.zip and size match > 2 mb``
$$ FLATVIEWCOPY
$$ /K
$$ **single**
$$ When copying items in different directories from a [[:basic_concepts:flat_view|flat view]] file display, the files will all be copied to the same target directory. This overrides the **When copying nested items** option on the **[[:preferences:preferences_categories:file_operations:copying_files:confirmation|Copying Files / Confirmation]]** Preferences page.
``Copy FLATVIEWCOPY=single``
$$
$$
$$ **recreate**
$$ Recreates the source folder structure when copying items in different directories out of a [[:basic_concepts:flat_view|flat view]] file display.
``Copy FLATVIEWCOPY=recreate``
$$
$$
$$ **ask**
$$ Opus will ask you what to do when copying items out of a flat view file display.
``Copy FLATVIEWCOPY=ask``
$$
$$
$$ **autosingle**
$$ When used with **ask** or **recreate** this specifies what to do when the items being copied come from multiple folders. If the items being copied all come from the same folder, it will act as if **single** was specified instead.
``Copy FLATVIEWCOPY=autosingle,recreate``
$$ FORCE
$$ /S
$$ //(no value)//
$$ Automatically replace existing files without prompting. In-use files that cannot be replaced will be automatically scheduled for replacement next reboot.
``Copy FORCE``
$$ HERE
$$ /S
$$ //(no value)//
$$ Use the source folder as the destination folder (for example, archives can be extracted to the same folder instead of the destination).
``Copy EXTRACT HERE``
**Important:** The **HERE** argument can complicate buttons which run more than one command, as it can affect the destination folder used by subsequent commands in the same button. It is recommended to use **TO={sourcepath$}** instead if the button runs multiple commands.
**Scripting:** The **HERE** argument does not work when running commands via the scripting Command object. Instead, use //cmd.SetDestTab(cmd.sourcetab)// on the Command object, or use an explicit **TO** argument in the command string.
$$ IGNOREEXT
$$ /S
$$ //(no value)//
$$ Makes the copy function ignore file extensions when copying with a wildcard rename (for example, so a button can work on both files and folders using the same wildcard pattern).
``Copy * AS *.bak IGNOREEXT``
$$ INCLUDEINLIBRARY
$$ /O
$$ //(no value)//
$$ Displays a dynamically generated list of [[:basic_concepts:virtual_file_system:libraries|libraries]] - you can include a selected folder in a library simply by selecting it from this list. Acts as a [[:customize:creating_your_own_buttons:editing_the_toolbar:dynamic_buttons|dynamic button]]. Most useful when used in a drop-down menu or on a [[:file_types:filetype_editor:context_menu|context menu]].
Opus will automatically navigate to show the contents of the library with the newly included folder.
``Copy INCLUDEINLIBRARY``
$$
$$
$$ **noread**
$$ Prevents Opus from automatically navigating to the library when you include a folder in it via the generated list.
``Copy INCLUDEINLIBRARY noread``
$$
$$
$$ **$new**
$$ Include selected folders in a new library. The new library will be given the name of the first selected folder. Opus will automatically navigate to the new library unless you include the **noread:** prefix.
``Copy INCLUDEINLIBRARY noread:$new``
$$
$$
$$ ////
$$ Include selected folders in the named library. Opus will automatically navigate to the new library unless you include the **noread:** prefix.
``Copy INCLUDEINLIBRARY "noread:Movie Files"``
$$ INSTALLFONT
$$ /O
$$ //(no value)//
$$ Installs new fonts in your system fonts folder. You do not need to specify the destination folder when using this command - the fonts will be copied to your fonts folder and registered automatically. This command has no effect if non-font files are selected. Fonts will be installed for all users (and so elevation will be required if UAC is enabled).
``Copy INSTALLFONT``
$$ $$ $$ **user**
$$ Installs the new fonts for the current user only. Does not require elevation under UAC.
``Copy INSTALLFONT=user``
$$ MAKELINK
$$ /O
$$ //(no value)//
$$ Creates shortcuts to all selected files and folders. Shortcuts do not require NTFS. Shortcuts may point to things on different drives to themselves.
``Copy MAKELINK TO /desktop``
$$
$$
$$ **junction**
$$ Creates junctions to all selected folders. Junctions are only supported on NTFS drives. Junctions only work with folders (not with files). Junctions may point to folders on different drives to themselves.
``Copy MAKELINK=junction``
$$
$$
$$ **hardlink**
$$ Creates hardlinks to all selected files. Hardlinks are only supported on NTFS drives. Hardlinks only work with files (not folders). Hardlinks //cannot// point to files on different drives to themselves.
``Copy MAKELINK=hardlink``
$$
$$
$$ **softlink**
$$ Creates softlinks to all selected files or folders, using absolute paths. Softlinks require Windows Vista or above and are only supported on NTFS drives. Softlinks work with both files and folders. Softlinks may point to things on different drives to themselves. Creating softlinks requires administrator access and will trigger a UAC prompt if necessary.
``Copy MAKELINK=softlink``
$$
$$
$$ **relsoftlink**
$$ Creates softlinks to any selected files or folders, using relative paths where possible. A regular absolute link will be created if the target can not be expressed relative to the link. (See **softlink** for more information on softlinks.)
``Copy MAKELINK=relsoftlink``
$$
$$
$$ **auto**
$$ Automatically determines the most suitable type of link to create. On Vista and above, it will usually create softlinks (for both files and folders). On Windows XP, it will usually create junctions (for folders) and hardlinks (for files). Shortcuts will be created instead in cases where the desired link type is not applicable. For example, a shortcut will be created if the drives are not NTFS or if a hardlink is desired but the source and destination are on different drives.
``Copy MAKELINK=auto``
$$
$$
$$ **autonosoft**
$$ Does the same as **auto** except that it will not try to create softlinks. It will usually create junctions (for folders) and hardlinks (for files). Shortcuts will be created instead in cases where the desired link type is not applicable. For example, a shortcut will be created if the drives are not NTFS or for files where the source and destination are on different drives.
``Copy MAKELINK=autonosoft``
$$ MAKESFX
$$ /O
$$ //(no value)//
$$ Creates a [[:file_operations:creating_archives:zip_files:self-extracting_zip_files|self-extracting Zip file]] from selected files and folders. If you select a .zip file then it will be converted directly to self-extracting format; otherwise, the selected items will be zipped first.
``Copy MAKESFX``
$$ MARKDESTARCHIVE
$$ /K
$$ **yes**
$$ Clears the **A** ("ready for archiving") attribute on newly copied files. You can use this if your backup solution uses the **A** attribute to indicate a file has changes which need backing up, and you don't want the new copy to be backed up (until something modifies it and sets its **A** attribute again).
Overrides the **Mark copied files as archived (clear the A flag) **option on the **[[:preferences:preferences_categories:file_operations:copying_files:attributes|Copying Files / Attributes]]** Preferences page.
This does nothing if not preserving file attributes on copied files.
``Copy MARKDESTARCHIVE=yes``
$$
$$
$$ **no**
$$ Do not clear the **A** attribute on newly copied files.
``Copy MARKDESTARCHIVE=no``
$$ MARKSOURCEARCHIVE
$$ /K
$$ **yes**
$$ Clear the **A** ("ready for archiving") attribute on the original files after they have been copied. You can use this if your backup solution uses the **A** attribute to indicate a file has changes which need backing up, and you don't want the original files to be backed up.
Overrides the **Mark original files as archived after being copied (clear the A flag)** option on the **[[:preferences:preferences_categories:file_operations:copying_files:attributes|Copying Files / Attributes]]** Preferences page.
``Copy MARKSOURCEARCHIVE=yes``
$$
$$
$$ **no**
$$ Do not clear the **A** attribute on the original files after they are copied.
``Copy MARKSOURCEARCHIVE=no``
$$ MOVE
$$ /S
$$ //(no value)//
$$ Move selected files and folders to the destination (a.k.a. cut-and-paste). If the destination folder is on the same drive as the source then generally items can be moved through a simple rename operation, which is very quick. When moving files between devices Opus first copies them to the destination, and then deletes them from the source.
``Copy MOVE``
$$ MOVEWHENSAME
$$ /S
$$ //(no value)//
$$ If the destination folder is on the same drive as the source then selected items will be moved, otherwise they will be copied. This command is used in the default [[:file_types:filetype_editor:events|drag-and-drop file type event]] (which mimics the standard Explorer drag-and-drop behaviour where files are moved if you drag them to a different folder on the same drive, and copied otherwise).
``Copy MOVEWHENSAME``
$$ MOVEWITHSHIFT
$$ /S
$$ //(no value)//
$$ Selected items will be moved if the **Shift** key is held down when the command is executed, otherwise they will be copied.
``Copy MOVEWITHSHIFT``
$$ NONBUFIO
$$ /K
$$ **yes**
$$ Changes when the copy operation uses non-buffered mode, where the filesystem buffers provided by Windows are bypassed.
For very large files, copying in non-buffered mode can increase the memory efficiency, copy speed and UI responsiveness. On the other hand, non-buffered mode may slow things down for smaller files or certain devices. In rare cases, non-buffered mode may not work at all (e.g. if you have a device which mis-reports its sector size).
Use of this argument overrides the default file size threshold for non-buffered copies set via the **copy_nonbufferio_threshold** [[:preferences:preferences_categories:miscellaneous:advanced_options|Advanced]] Preferences setting.
You can specify "yes" or "no" to force non-buffered mode on or off for all files, or specify the file size above which non-buffered mode should be used.
``Copy NONBUFIO=yes``
This has no effect when doing simple file-to-file copies and delegating to the very-high-level Windows file-copy API, since that API performs its own buffering. See the **DELEGATE** argument for more detail.
$$
$$
$$ **no**
$$ Forces the copy operation to be buffered, even if the file being copied exceeds the threshold size set via the **copy_nonbuffer_threshold** [[:preferences:preferences_categories:miscellaneous:advanced_options|Advanced]] Preferences setting.
``Copy NONBUFIO=no``
$$
$$
$$ ////
$$ The copy operation will be non-buffered if the file size exceeds the specified size, and buffered otherwise. When specifying a size, units can be KB, MB or GB. If no units are specified, MB is used by default.
``Copy NONBUFIO=64MB``
$$ NOQUEUEWHENSAME
$$ /S
$$ //(no value)//
$$ Disables the use of the copy queue when the source and destination paths are on the same drive partition. You would normally only use this argument when moving files, because moves on the same drive can be done without actually copying any data.
``Copy MOVE NOQUEUEWHENSAME``
$$ PATTERN
$$ /K
$$ ////
$$ Specifies the "old name" or "from" [[:file_operations:copying_moving_and_deleting_files:copying_using_the_toolbar_buttons:using_wildcards_when_copying|wildcard pattern]] for the copied or moved files. Use this in conjunction with **AS** to control wildcard renaming of copied or moved files.
``Copy DUPLICATE PATTERN *.* AS *_{date|yyyy-MM-dd}.``*
$$ QUEUE
$$ /O
$$ //(no value)//
$$ Enables automatic [[:file_operations:copying_moving_and_deleting_files:copy_queues|copy queuing]]. File copies will be queued automatically if required (based on the source and destination drives). This can override the **Automatically manage file copy queues** option on the **[[:preferences:preferences_categories:file_operations:copying_files|Copying Files]]** Preferences page.
``Copy QUEUE``
$$
$$
$$ ////
$$ When you specify a queue name as the value for this argument, it enables manual copy queuing when copying files. That is, with a name specified, file copies will always be queued to the specified queue - if no name is specified for the argument, copies will only be queued if needed. The specified name will be shown in the progress dialog's title bar.
``Copy QUEUE=MyQueue``
$$
$$
$$ **none**
$$ Used to disable copy queuing - whether enabled in Preferences, or otherwise enabled by the **shift** keyword.
``Copy QUEUE=none``
$$
$$
$$ **shift**
$$ Lets you specify two alternate parameters for the **QUEUE** argument. The value specified before the **shift** keyword is used if the **Shift** key is not held down - the value after it is used if it is. For example, you could configure a copy button to queue files to a specific queue if the **Shift** key were held down, and to disable queuing otherwise.
``Copy QUEUE=none,shift,MyQueue TO \\NAS1\Storage``
$$
$$
$$ **quiet**
$$ Specify the **quiet** keyword to suppress the prompt that normally indicates a copy operation has been queued. (Opus 13.9.1 and above: You can also turn off //Display confirmation when a job is queued// in Preferences.)
``Copy QUEUE=MyQueue,quiet``
$$
$$
$$ **noisy**
$$ (Opus 13.9.1 and above.) Specify the **noisy** keyword to always show a prompt indicating a copy operation has been queued, even if //Display confirmation when a job is queued// is off in Preferences.
``Copy QUEUE=MyQueue,noisy``
$$ READAUTO
$$ /O
$$ //(no value)//
$$ When used with **CREATEFOLDER**, automatically reads the newly created folder into the current source file display.
``Copy CREATEFOLDER "Backup-{date|yyyyMMdd}" READAUTO``
$$
$$
$$ **no**
$$ Do not automatically read the newly created folder.
``Copy CREATEFOLDER "Backup-{date|yyyyMMdd}" READAUTO=no``
$$
$$
$$ **dual**
$$ Read the newly created folder into the other file display. If the Lister is not currently in [[:basic_concepts:the_lister:dual_display|dual-display]] mode it will be placed in this mode first. You can combine this value with **tab** to open a new tab in the other file display.
``Copy CREATEFOLDER "Backup-{date|yyyyMMdd}" READAUTO=dual``
$$
$$
$$ **left**
$$ Read the newly created folder into the left (or top) file display, regardless of which side is active. You can combine this value with **tab** to open a new tab.
``Copy CREATEFOLDER "Backup-{date|yyyyMMdd}" READAUTO=left,tab``
$$
$$
$$ **right**
$$ Read the newly created folder into the right (or bottom) file display, regardless of which side is active. If the Lister is not currently in [[:basic_concepts:the_lister:dual_display|dual-display]] mode it will be placed in this mode first. You can combine this value with **tab** to open a new tab in the other file display.
``Copy CREATEFOLDER "Backup-{date|yyyyMMdd}" READAUTO=right``
$$
$$
$$ **tab**
$$ Create a new tab for the newly created folder. The tab will be opened in the source file display unless **dual**, **left**, or **right** is also specified.
``Copy CREATEFOLDER "Backup-{date|yyyyMMdd}" READAUTO=dual,tab``
$$
$$
$$ **nofocus**
$$ When opening a new tab, prevents that tab from being made the active one.
``Copy CREATEFOLDER "Backup-{date|yyyyMMdd}" READAUTO=tab,nofocus``
$$ RENAMEWHENSAME
$$ /S
$$ //(no value)//
$$ If the source and destination are the same folder, the newly copied file will be automatically renamed to avoid a clash.
``Copy RENAMEWHENSAME``
$$ SENDMAIL
$$ /O
$$ //(no value)//
$$ Send selected files as email attachments. Email settings must be configured on the **[[:preferences:preferences_categories:internet:email|Internet / Email]]** Preferences page.
``Copy SENDMAIL``
$$
$$
$$ ////
$$ Send selected files to the specified email recipient. This only works if email sending is set to use the **MAPI client** on the **[[:preferences:preferences_categories:internet:email|Internet / Email]]** Preferences page.
``Copy SENDMAIL=f.bloggs@company.com``
$$ SENDTO
$$ /K
$$ ////
$$ Send selected files to the specified "send to" target. This can be any item that appears in the system //Send To// context menu, and lets you perform the same action without actually displaying the context menu. The value given for the target must be the name of the actual file in the //SendTo// folder (to find the //SendTo// folder and see what's in there, use the **/sendto** [[:basic_concepts:the_lister:navigation:aliases|folder alias]]).
``Copy SENDTO "Web Publishing Wizard"``
$$ SYNC
$$ /S
$$ //(no value)//
$$ Performs the copy stage of a [[:file_operations:copying_moving_and_deleting_files:copying_updated_files:synchronize|synchronize]] operation. You must first have used the **[[find|Find]] SYNC** command to perform the comparison stage.
//Example:// See the `Find SYNC` [[find#SYNC|command]] for an example
$$ TO
$$ /K
$$ ////
$$ Specify the target path for the command. By default Copy functions that require a destination folder will use the current destination file display or Lister - this argument allows you to override that. Also see the HERE argument for a way to override the destination path. You can use [[:basic_concepts:the_lister:navigation:aliases|folder aliases]]and [[:ftp:ftp_paths|@ftp shortcuts]], URL-style paths for [[:basic_concepts:virtual_file_system|virtual filesystems]] ([[:basic_concepts:virtual_file_system:file_collections|collections]], [[:basic_concepts:virtual_file_system:libraries|libraries]], etc.) as well as standard file system paths. Remember that if the specified path contains a space you must enclose the whole path in quotes. This only sets the destination folder; if you want to change the names of the copied files as well, use the **AS** argument.
Note that specifying the target path in this way disables automatic [[:file_operations:copying_moving_and_deleting_files:copy_queues|copy queues]]. You can use the **QUEUE** argument to place these operations in a queue.
``Copy TO "lib://Backups/Daily Backup Folder"``
$$
$$
$$ **ask**
$$ Normally if no destination path is specified, and there is no current destination file display or Lister, Opus will prompt for a destination path via a popup dialog. You can use the **ask** value to force Opus to always prompt for a destination path, even if there already is one.
You can also specify a default destination path, by appending a colon and the path. Remember to use quotes if the path contains spaces.
``Copy TO=ask``\\
``Copy TO="ask:c:\My Documents"``
$$
$$
$$ **ask$**
$$ Force Opus to ask for a destination path. If you have a function that combines multiple **Copy** commands, you can use **ask$** to make Opus only prompt for a destination path once for the whole function, rather than prompting separately for each **Copy** command.
You can also specify a default destination path, by appending a colon and the path.
``Copy TO=ask$``\\
``Copy TO=ask$:D:\``
$$ UNATTENDED
$$ /K
$$ **yes**
$$ Enables [[:file_operations:copying_moving_and_deleting_files:copy_queues:unattended_operation|unattended copy]] mode. In this mode, Opus will not display any confirmation prompts or error dialogs - the copy will proceed until the end, and any errors will be summarised upon completion. Use the other arguments like **WHENEXISTS** to control what happens in certain situations.
``Copy UNATTENDED=yes TO=@myftpsite WHENEXISTS=replace``
$$
$$
$$ **no**
$$ Disables unattended copy mode.
``Copy UNATTENDED=no``
$$ UPDATEALL
$$ /S
$$ //(no value)//
$$ Update files in the destination folder ([[:file_operations:copying_moving_and_deleting_files:copying_updated_files|a simple form of one-way synchronization]]). Only files that either do not exist in the destination, or do exist but are different from the source files, will be copied - other files will be skipped.
(Compare this with **UPDATEEXISTING** which only updates files that already exist.)
A file is defined as different if either its timestamp is newer or its size has changed - the contents of the file are not compared.
``Copy UPDATEALL FORCE``
$$
$$
$$ **date**
$$ Update existing files whose timestamp is different (ignore file size).
``Copy UPDATEALL=date``
$$
$$
$$ **size**
$$ Update existing files whose size is different (ignore timestamp).
``Copy UPDATEALL=size``
$$
$$
$$ **smaller**
$$ When used with **size**, only updates files whose size is smaller (rather than just different).
``Copy UPDATEALL=size,smaller``
$$
$$
$$ **larger**
$$ When used with **size**, only updates files whose size is larger..
``Copy UPDATEALL=size,larger``
$$ UPDATEEXISTING
$$ /O
$$ //(no value)//
$$ Update existing files in the destination folder ([[:file_operations:copying_moving_and_deleting_files:copying_updated_files|a simple form of one-way synchronization]]). Only files that already exist in the destination, but are different from the source files, will be copied. Files that do not already exist, as well as files that have not changed, will be skipped.
(Compare this with **UPDATEALL** which also copies files that don't already exist.)
A file is defined as different if either its timestamp is newer or its size has changed.
``Copy UPDATEEXISTING``
$$
$$
$$ **date**
$$ Update existing files whose timestamp is different (ignore file size).
``Copy UPDATEEXISTING=date``
$$
$$
$$ **size**
$$ Update existing files whose size is different (ignore timestamp).
``Copy UPDATEEXISTING=size``
$$
$$
$$ **smaller**
$$ When used with **size**, only updates files whose size is smaller (rather than just different).
``Copy UPDATEEXISTING=size,smaller``
$$
$$
$$ **larger**
$$ When used with **size**, only updates files whose size is larger..
``Copy UPDATEEXISTING=size,larger``
$$ UPDATESECURITY
$$ /K
$$ **yes**
$$ Update security permissions and encryption settings for moved* files to match their destination folders.
Overrides the **Update permissions/encryption to match the destination when moving files** option on the **[[:preferences:preferences_categories:file_operations:copying_files:attributes|Copying Files / Attributes]]** Preferences page.
For example, if a folder has the **E** attribute set, files moved into that folder will be automatically encrypted.
This only applies to files moved between folders on the same logical drive. For files that are moved between drives, the operation is done via a copy-then-delete and the newly copied files will usually inherit the permissions of the destination folder by default (unless overridden by the separate **COPYSECURITY** argument or related Preferences setting).
``Copy UPDATESECURITY=yes``
$$
$$
$$ **no**
$$ Do not update security permissions or encryption settings for files moved between folders on the same logical drive. Such files will instead retain the permissions they had in their original folders.
``Copy UPDATESECURITY=no``
$$ UPDATETOLERANCE
$$ /K/N
$$ ////
$$ Sets the maximum number of seconds an existing file's timestamp can vary before it will be considered "different" by the **UPDATEALL** or **UPDATEEXISTING** functions. The default is two seconds (that is, a file will be considered different if its timestamp is two or more seconds different to the source file). You can use this to make allowances for daylight-savings time, or for file systems that don't preserve file dates to a high enough resolution.
``Copy UPDATEEXISTING UPDATETOLERANCE=3600``
$$ WHENEXISTS
$$ /K
$$ **ask**
$$ If a file that is being copied already exists in the destination, ask what to do. This overrides the option **Ask for confirmation before overwriting existing files** on the **[[:preferences:preferences_categories:file_operations:copying_files:confirmation|Copying Files / Confirmation]]** page in Preferences.
``Copy WHENEXISTS=ask``
$$
$$
$$ **skip**
$$ If a file that is being copied already exists in the destination, skip over it (leaving existing file intact).
``Copy WHENEXISTS=skip``
$$
$$
$$ **recycle**
$$ When replacing a file, delete the original to the recycle bin if possible. You can combine this flag with the other options.
Note that **Undo** can not be used to restore these files automatically, however you will be able to retrieve them from the recycle bin manually.
``Copy WHENEXISTS=replace,recycle``
$$
$$
$$ **replace**
$$ Replace any existing files without prompting.
``Copy WHENEXISTS=replace``
$$
$$
$$ **rename**
$$ If a file with the same name already exists in the destination, the newly copied file will be renamed automatically to avoid a clash.
``Copy WHENEXISTS=rename``
$$
$$
$$ **renameold**
$$ The old file (the one that already exists in the destination directory) will be renamed before the new file is copied.
``Copy WHENEXISTS=renameold``
$$
$$
$$ **resume**
$$ When copying to FTP sites, a previous incomplete file transfer will be automatically resumed (only applies if the server supports FTP, and the existing file is smaller than the one being copied).
``Copy WHENEXISTS=resume``
$$
$$
$$ **merge**
$$ Automatically merge the contents of an existing folder with that of the folder being copied. This overrides the **Ask for confirmation before merging existing folders** option on the **[[:preferences:preferences_categories:file_operations:copying_files:confirmation|Copying Files / Confirmation]]** page in Preferences. You can use this value in addition to another value to specify the 'when exists' behaviour for files as well as folders.
``Copy WHENEXISTS=replace,merge``
$$
$$
$$ **keepnewer**
$$ Replace any existing files if the files being copied are newer. If the timestamps are the same or older, the already-existing files will be skipped.
``Copy WHENEXISTS=keepnewer``