.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.13)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\" ========================================================================
.\"
.IX Title "ExtUtils::Command 3"
.TH ExtUtils::Command 3 "2019-04-28" "perl v5.10.1" "User Contributed Perl Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
ExtUtils::Command \- utilities to replace common UNIX commands in Makefiles etc.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 12
\& perl \-MExtUtils::Command \-e cat files... > destination
\& perl \-MExtUtils::Command \-e mv source... destination
\& perl \-MExtUtils::Command \-e cp source... destination
\& perl \-MExtUtils::Command \-e touch files...
\& perl \-MExtUtils::Command \-e rm_f files...
\& perl \-MExtUtils::Command \-e rm_rf directories...
\& perl \-MExtUtils::Command \-e mkpath directories...
\& perl \-MExtUtils::Command \-e eqtime source destination
\& perl \-MExtUtils::Command \-e test_f file
\& perl \-MExtUtils::Command \-e test_d directory
\& perl \-MExtUtils::Command \-e chmod mode files...
\& ...
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
The module is used to replace common \s-1UNIX\s0 commands. In all cases the
functions work from \f(CW@ARGV\fR rather than taking arguments. This makes
them easier to deal with in Makefiles. Call them like this:
.PP
.Vb 1
\& perl \-MExtUtils::Command \-e some_command some files to work on
.Ve
.PP
and \fI\s-1NOT\s0\fR like this:
.PP
.Vb 1
\& perl \-MExtUtils::Command \-e \*(Aqsome_command qw(some files to work on)\*(Aq
.Ve
.PP
For that use Shell::Command.
.PP
Filenames with * and ? will be glob expanded.
.SS "\s-1FUNCTIONS\s0"
.IX Subsection "FUNCTIONS"
.IP "cat" 4
.IX Item "cat"
.Vb 1
\& cat file ...
.Ve
.Sp
Concatenates all files mentioned on command line to \s-1STDOUT\s0.
.IP "eqtime" 4
.IX Item "eqtime"
.Vb 1
\& eqtime source destination
.Ve
.Sp
Sets modified time of destination to that of source.
.IP "rm_rf" 4
.IX Item "rm_rf"
.Vb 1
\& rm_rf files or directories ...
.Ve
.Sp
Removes files and directories \- recursively (even if readonly)
.IP "rm_f" 4
.IX Item "rm_f"
.Vb 1
\& rm_f file ...
.Ve
.Sp
Removes files (even if readonly)
.IP "touch" 4
.IX Item "touch"
.Vb 1
\& touch file ...
.Ve
.Sp
Makes files exist, with current timestamp
.IP "mv" 4
.IX Item "mv"
.Vb 2
\& mv source_file destination_file
\& mv source_file source_file destination_dir
.Ve
.Sp
Moves source to destination. Multiple sources are allowed if
destination is an existing directory.
.Sp
Returns true if all moves succeeded, false otherwise.
.IP "cp" 4
.IX Item "cp"
.Vb 2
\& cp source_file destination_file
\& cp source_file source_file destination_dir
.Ve
.Sp
Copies sources to the destination. Multiple sources are allowed if
destination is an existing directory.
.Sp
Returns true if all copies succeeded, false otherwise.
.IP "chmod" 4
.IX Item "chmod"
.Vb 1
\& chmod mode files ...
.Ve
.Sp
Sets \s-1UNIX\s0 like permissions 'mode' on all the files. e.g. 0666
.IP "mkpath" 4
.IX Item "mkpath"
.Vb 1
\& mkpath directory ...
.Ve
.Sp
Creates directories, including any parent directories.
.IP "test_f" 4
.IX Item "test_f"
.Vb 1
\& test_f file
.Ve
.Sp
Tests if a file exists. \fIExits\fR with 0 if it does, 1 if it does not (ie.
shell's idea of true and false).
.IP "test_d" 4
.IX Item "test_d"
.Vb 1
\& test_d directory
.Ve
.Sp
Tests if a directory exists. \fIExits\fR with 0 if it does, 1 if it does
not (ie. shell's idea of true and false).
.IP "dos2unix" 4
.IX Item "dos2unix"
.Vb 1
\& dos2unix files or dirs ...
.Ve
.Sp
Converts \s-1DOS\s0 and \s-1OS/2\s0 linefeeds to Unix style recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
Shell::Command which is these same functions but take arguments normally.
.SH "AUTHOR"
.IX Header "AUTHOR"
Nick Ing-Simmons \f(CW\*(C`ni\-s@cpan.org\*(C'\fR
.PP
Maintained by Michael G Schwern \f(CW\*(C`schwern@pobox.com\*(C'\fR within the
ExtUtils-MakeMaker package and, as a separate \s-1CPAN\s0 package, by
Randy Kobes \f(CW\*(C`r.kobes@uwinnipeg.ca\*(C'\fR.
Copyright 2K16 - 2K18 Indonesian Hacker Rulez