ExtUtils::Command(3pm) Perl Programmers Reference Guide ExtUtils::Command(3pm)

# [NAME](#NAME)

ExtUtils::Command - utilities to replace common UNIX commands in Makefiles etc.

# [SYNOPSIS](#SYNOPSIS)

```
  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](#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:

```
  perl -MExtUtils::Command -e some_command some files to work on
```

and *NOT* like this:

```
  perl -MExtUtils::Command -e 'some_command qw(some files to work on)'
```

For that use Shell::Command.

Filenames with * and ? will be glob expanded.

## [FUNCTIONS](#FUNCTIONS)

[cat](#cat)

```
    cat file ...
    
```

Concatenates all files mentioned on command line to STDOUT.

[eqtime](#eqtime)

```
    eqtime source destination
    
```

Sets modified time of destination to that of source.

[rm\_rf](#rm_rf)

```
    rm_rf files or directories ...
    
```

Removes files and directories - recursively (even if readonly)

[rm\_f](#rm_f)

```
    rm_f file ...
    
```

Removes files (even if readonly)

[touch](#touch)

```
    touch file ...
    
```

Makes files exist, with current timestamp

[mv](#mv)

```
    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](#cp)

```
    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](#chmod)

```
    chmod mode files ...
    
```

Sets UNIX like permissions 'mode' on all the files. e.g. 0666

[mkpath](#mkpath)

```
    mkpath directory ...
    
```

Creates directories, including any parent directories.

[test\_f](#test_f)

```
    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](#test_d)

```
    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](#dos2unix)

```
    dos2unix files or dirs ...
    
```

Converts DOS and OS/2 linefeeds to Unix style recursively.

# [SEE ALSO](#SEE_ALSO)

Shell::Command which is these same functions but take arguments normally.

# [AUTHOR](#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".

2026-10-21 perl v5.44.0

---

Document: ExtUtils::Command(3pm) from perl 5.44.0-r2 (Chainguard OS)
Source: https://github.com/Perl/perl5.git
