```{index} single: ExtUtils::Command ``` # ExtUtils::Command utilities to replace common UNIX commands in Makefiles etc. ## SYNOPSIS ```text 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... ... ``` ## DESCRIPTION The module is used to replace common UNIX commands. In all cases the functions work from @ARGV rather than taking arguments. This makes them easier to deal with in Makefiles. Call them like this: ```text perl -MExtUtils::Command -e some_command some files to work on ``` and _NOT_ like this: ```text perl -MExtUtils::Command -e 'some_command qw(some files to work on)' ``` For that use [Shell::Command](https://metacpan.org/pod/Shell::Command). Filenames with \* and ? will be glob expanded. ### FUNCTIONS - cat ```text cat file ... ``` Concatenates all files mentioned on command line to STDOUT. - eqtime ```text eqtime source destination ``` Sets modified time of destination to that of source. - rm\_rf ```text rm_rf files or directories ... ``` Removes files and directories - recursively (even if readonly) - rm\_f ```text rm_f file ... ``` Removes files (even if readonly) - touch ```text touch file ... ``` Makes files exist, with current timestamp - mv ```text mv source_file destination_file mv source_file source_file destination_dir ``` Moves source to destination. Multiple sources are allowed if destination is an existing directory. Returns true if all moves succeeded, false otherwise. - cp ```text cp source_file destination_file cp source_file source_file destination_dir ``` Copies sources to the destination. Multiple sources are allowed if destination is an existing directory. Returns true if all copies succeeded, false otherwise. - chmod ```text chmod mode files ... ``` Sets UNIX like permissions 'mode' on all the files. e.g. 0666 - mkpath ```text mkpath directory ... ``` Creates directories, including any parent directories. - test\_f ```text test_f file ``` Tests if a file exists. _Exits_ with 0 if it does, 1 if it does not (ie. shell's idea of true and false). - test\_d ```text test_d directory ``` Tests if a directory exists. _Exits_ with 0 if it does, 1 if it does not (ie. shell's idea of true and false). - dos2unix ```text dos2unix files or dirs ... ``` Converts DOS and OS/2 linefeeds to Unix style recursively. ## SEE ALSO Shell::Command which is these same functions but take arguments normally. ## AUTHOR Nick Ing-Simmons `ni-s@cpan.org` Maintained by Michael G Schwern `schwern@pobox.com` within the ExtUtils-MakeMaker package and, as a separate CPAN package, by Randy Kobes `r.kobes@uwinnipeg.ca`. ## Modules - [`ExtUtils::Command::MM`](Command/MM.md) - Commands for the MM's to use in Makefiles ```{toctree} :hidden: :maxdepth: 1 Command/MM ```