|
|
|
@ -2,7 +2,7 @@
|
|
|
|
|
.\" First parameter, NAME, should be all caps
|
|
|
|
|
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
|
|
|
|
.\" other parameters are allowed: see man(7), man(1)
|
|
|
|
|
.TH GCP 1 "June 04, 2011"
|
|
|
|
|
.TH GCP 1 "October 14, 2018"
|
|
|
|
|
.\" Please adjust this date whenever revising the manpage.
|
|
|
|
|
.\"
|
|
|
|
|
.\" Some roff macros, for reference:
|
|
|
|
@ -15,6 +15,9 @@
|
|
|
|
|
.\" .br insert line break
|
|
|
|
|
.\" .sp <n> insert n+1 empty lines
|
|
|
|
|
.\" for manpage-specific macros, see man(7)
|
|
|
|
|
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
|
|
|
|
|
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
|
|
|
|
|
.\" respectively.
|
|
|
|
|
.SH NAME
|
|
|
|
|
gcp \- Advanced command-line file copier
|
|
|
|
|
.SH SYNOPSIS
|
|
|
|
@ -28,77 +31,109 @@ gcp \- Advanced command-line file copier
|
|
|
|
|
.RI [ FILE2 ... ]
|
|
|
|
|
.I DEST-DIR
|
|
|
|
|
.SH DESCRIPTION
|
|
|
|
|
This manual page documents briefly the
|
|
|
|
|
.B gcp
|
|
|
|
|
command.
|
|
|
|
|
.PP
|
|
|
|
|
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
|
|
|
|
|
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
|
|
|
|
|
.\" respectively.
|
|
|
|
|
\fBgcp\fP is a file copier, loosely inspired by cp, but with high level functionalities like:
|
|
|
|
|
\- transfer progression indication
|
|
|
|
|
\- continuous copying when there is an issue: it skips the problematic file and goes on
|
|
|
|
|
\- copy status logging: which files were effectively copied
|
|
|
|
|
\- name mangling to handle target filesystem limitations (e.g. removing incompatible chars like "?" or "*" on vfat)
|
|
|
|
|
\- forced copy serialization: new files to copy are added to a global queue to avoid hard drive head seeks
|
|
|
|
|
\- transfer list management: gcp can save a list of files to copy and reuse it later
|
|
|
|
|
\- approximate option compatibility with cp (approximate because the behaviour is not exactly the same, see below)
|
|
|
|
|
\fBgcp\fP is a file copier, loosely inspired by cp, but with high level
|
|
|
|
|
functionalities like:
|
|
|
|
|
.IP \(bu 2
|
|
|
|
|
transfer progression indication
|
|
|
|
|
.IP \(bu
|
|
|
|
|
continuous copying when there is an issue: it skips the problematic file and
|
|
|
|
|
goes on
|
|
|
|
|
.IP \(bu
|
|
|
|
|
copy status logging: which files were effectively copied
|
|
|
|
|
.IP \(bu
|
|
|
|
|
name mangling to handle target filesystem limitations (e.g. removing
|
|
|
|
|
incompatible chars like "?" or "*" on FAT filesystems)
|
|
|
|
|
.IP \(bu
|
|
|
|
|
forced copy serialization: new files to copy are added to a global queue to
|
|
|
|
|
avoid hard drive head seeks
|
|
|
|
|
.IP \(bu
|
|
|
|
|
transfer list management: gcp can save a list of files to copy and reuse it
|
|
|
|
|
later
|
|
|
|
|
.IP \(bu
|
|
|
|
|
approximate option compatibility with cp (approximate because the behaviour is
|
|
|
|
|
not exactly the same, see below)
|
|
|
|
|
.SH OPTIONS
|
|
|
|
|
These programs follow the usual GNU command line syntax, with long
|
|
|
|
|
options starting with two dashes (`-').
|
|
|
|
|
By default, calling gcp is equivalent to calling gcp \-\-preserve=mode,ownership,timestamps.
|
|
|
|
|
.PP
|
|
|
|
|
A summary of options is included below.
|
|
|
|
|
.SS "General options"
|
|
|
|
|
.TP
|
|
|
|
|
.B \-\-version
|
|
|
|
|
Show version of program and exit.
|
|
|
|
|
.SS General options
|
|
|
|
|
.TP
|
|
|
|
|
.B \-h, \-\-help
|
|
|
|
|
Show summary of options.
|
|
|
|
|
.TP
|
|
|
|
|
.B \-r, \-R, \-\-recursive
|
|
|
|
|
Copy directories recursively.
|
|
|
|
|
.B \-V, \-\-version
|
|
|
|
|
Show program version and copyright information and exit.
|
|
|
|
|
.SS cp-like options
|
|
|
|
|
.TP
|
|
|
|
|
.B \-f, \-\-force
|
|
|
|
|
Overwrite existing files.
|
|
|
|
|
.TP
|
|
|
|
|
.B \-L, \-\-dereference
|
|
|
|
|
always follow symbolic links in sources
|
|
|
|
|
Always follow symbolic links in sources.
|
|
|
|
|
.TP
|
|
|
|
|
.B \-P, \-\-no\-dereference
|
|
|
|
|
never follow symbolic links in sources
|
|
|
|
|
.TP
|
|
|
|
|
.B \-f, \-\-force
|
|
|
|
|
Overwrite existing files.
|
|
|
|
|
Never follow symbolic links in sources.
|
|
|
|
|
.TP
|
|
|
|
|
.B \-p
|
|
|
|
|
Same as \-\-preserve=mode,ownership,timestamps
|
|
|
|
|
Same as \fB\-\-preserve=mode,ownership,timestamps\fP
|
|
|
|
|
.TP
|
|
|
|
|
.B \-\-preserve=PRESERVE
|
|
|
|
|
Keep specified attributes. Attributes can be mode, ownership and timestamps.
|
|
|
|
|
When several attributes are passed, they need to be separated by commas. Note
|
|
|
|
|
that timestamps preservation has some limits, see section LIMITATIONS.
|
|
|
|
|
.B \-\-preserve=<\fIattributes\fP>
|
|
|
|
|
Preserve specified attributes. Attributes can be \fImode\fP, \fIownership\fP
|
|
|
|
|
and \fItimestamps\fP.
|
|
|
|
|
When several attributes are passed, they need to be separated by commas.
|
|
|
|
|
Please note that timestamps preservation has some limits, see section
|
|
|
|
|
\fILIMITATIONS\fP.
|
|
|
|
|
.TP
|
|
|
|
|
.B \-\-no\-fs\-fix
|
|
|
|
|
Don't fix file system naming incompatibilities.
|
|
|
|
|
.TP
|
|
|
|
|
.B \-\-no\-progress
|
|
|
|
|
Disable progress bar.
|
|
|
|
|
.B \-r, \-R, \-\-recursive
|
|
|
|
|
Copy directories recursively.
|
|
|
|
|
.TP
|
|
|
|
|
.B \-v, \-\-verbose
|
|
|
|
|
Display what is being done.
|
|
|
|
|
.SS "Sources saving"
|
|
|
|
|
.SS gcp-specific options
|
|
|
|
|
.TP
|
|
|
|
|
.B \-\-fix\-filenames=<\fIforce\fP|\fIauto\fP|\fIno\fP>
|
|
|
|
|
gcp has the ability to modify the destination file name if the target file
|
|
|
|
|
system would not accept the original file name.
|
|
|
|
|
Offending characters will be replaced with similar-looking ones.
|
|
|
|
|
.IP
|
|
|
|
|
This option accept the following values:
|
|
|
|
|
.RS
|
|
|
|
|
.TP
|
|
|
|
|
\fIauto\fP (default)
|
|
|
|
|
gcp will attempt to be smart, i.e. detect incompatibilities and fix them as-needed.
|
|
|
|
|
.TP
|
|
|
|
|
\fIforce\fP
|
|
|
|
|
Always fix file names that could cause problems on any known filesystem or OS.
|
|
|
|
|
This is useful e.g. with NTFS, see \fINOTE ON NTFS\fP below.
|
|
|
|
|
.TP
|
|
|
|
|
\fIno\fP
|
|
|
|
|
Renaming is disabled entirely.
|
|
|
|
|
.RE
|
|
|
|
|
.IP
|
|
|
|
|
Currently, gcp is only aware of FAT incompatibilities:
|
|
|
|
|
\'\\\', \':\', \'*\', \'?\', \'"\', \'<\', \'>\' and \'|\'.
|
|
|
|
|
.TP
|
|
|
|
|
.B \-\-no\-fs\-fix (DEPRECATED)
|
|
|
|
|
Same as \fB\-\-fix\-filenames=no\fP.
|
|
|
|
|
This option will be removed in a future release.
|
|
|
|
|
.TP
|
|
|
|
|
.B \-\-no\-progress
|
|
|
|
|
Disable progress bar.
|
|
|
|
|
.SS Sources saving
|
|
|
|
|
.TP
|
|
|
|
|
.B \-\-sources\-save=SOURCES_SAVE
|
|
|
|
|
Save the list of source files in a list named SOURCES_SAVE.
|
|
|
|
|
.B \-\-sources\-save=\fISOURCES\fP
|
|
|
|
|
Save the list of source files in a list named \fISOURCES\fP.
|
|
|
|
|
.TP
|
|
|
|
|
.B \-\-sources\-replace=SOURCES_REPLACE
|
|
|
|
|
Save the list of source files in a list named SOURCES_REPLACE and
|
|
|
|
|
replace it if it already exists.
|
|
|
|
|
.B \-\-sources\-replace=\fISOURCES\fP
|
|
|
|
|
Save the list of source files in a list named \fISOURCES\fP;
|
|
|
|
|
the file is overwritten it already exists.
|
|
|
|
|
.TP
|
|
|
|
|
.B \-\-sources\-load=SOURCES_LOAD
|
|
|
|
|
Reuse the list of source file named SOURCES_LOAD.
|
|
|
|
|
.B \-\-sources\-load=\fISOURCES\fP
|
|
|
|
|
Use the list of source files named \fISOURCES\fP.
|
|
|
|
|
.TP
|
|
|
|
|
.B \-\-sources\-del=SOURCES_DEL
|
|
|
|
|
Delete the list of source files named SOURCES_DEL.
|
|
|
|
|
.B \-\-sources\-del=\fISOURCES\fP
|
|
|
|
|
Delete the list of source files named \fISOURCES\fP.
|
|
|
|
|
.TP
|
|
|
|
|
.B \-\-sources\-list
|
|
|
|
|
List the names of source file lists.
|
|
|
|
@ -108,21 +143,33 @@ List the names of source file lists, including their content.
|
|
|
|
|
.SH EXIT STATUS
|
|
|
|
|
The exit status can be:
|
|
|
|
|
.IP \[bu] 2
|
|
|
|
|
\fB0\fP if files have been copied correctly or if another instance of gcp is already running and will do the copy.
|
|
|
|
|
\fB0\fP if files have been copied correctly or if another instance of gcp is
|
|
|
|
|
already running and will do the copy.
|
|
|
|
|
.IP \[bu]
|
|
|
|
|
\fB1\fP if at least one file has not been copied, or if something went wrong.
|
|
|
|
|
.IP \[bu]
|
|
|
|
|
\fB2\fP if all files have been copied but with some issues
|
|
|
|
|
.SH LIMITATIONS
|
|
|
|
|
Timestamps preservation with \-\-preserve option is limited by the os python
|
|
|
|
|
module on POSIX systems. Currently, python only returns timestamps in float
|
|
|
|
|
format, which is a smaller precision than what POSIX provides. Progress on this
|
|
|
|
|
issue can be seen at http://bugs.python.org/issue11457.
|
|
|
|
|
Timestamps preservation with \fB\-\-preserve\fP option is limited by the
|
|
|
|
|
\fIos\fP Python module on POSIX systems. Currently, Python only returns
|
|
|
|
|
timestamps in float format, which is a smaller precision than what POSIX
|
|
|
|
|
provides. Progress on this issue can be seen at
|
|
|
|
|
http://bugs.python.org/issue11457.
|
|
|
|
|
.PP
|
|
|
|
|
The \fB\-\-preserve\fP option cannot currently be used without an attribute
|
|
|
|
|
list (\fBgcp \-\-preserve foo bar\fP will behave as \fBgcp \-\-preserve=foo
|
|
|
|
|
bar\fP). Use the \fB\-p\fP switch instead.
|
|
|
|
|
.SH NOTE ON NTFS
|
|
|
|
|
NTFS will not enforce the same file name limitations than FAT, but files that
|
|
|
|
|
would not be accepted on a FAT filesystem will still cause problems on Windows.
|
|
|
|
|
Hence, it is recommended to use \-\-fix-filenames=force when copying to NTFS
|
|
|
|
|
(when Windows compatibility is desired, anyway).
|
|
|
|
|
.SH SEE ALSO
|
|
|
|
|
.BR cp (1).
|
|
|
|
|
.br
|
|
|
|
|
.SH AUTHOR
|
|
|
|
|
gcp was written by Jérôme Poisson <goffi@goffi.org>.
|
|
|
|
|
It is currently maintained by Matteo Cypriani <mcy@lm7.fr>.
|
|
|
|
|
.PP
|
|
|
|
|
This manual page was written by Thomas Preud'homme <robotux@celest.fr>,
|
|
|
|
|
for the Debian project (and may be used by others).
|
|
|
|
|
This manual page was initially written by Thomas Preud'homme
|
|
|
|
|
<robotux@celest.fr> for the Debian project (and may be used by others).
|
|
|
|
|