diff options
author | John Ankarström <john@ankarstrom.se> | 2021-05-03 21:46:33 +0200 |
---|---|---|
committer | John Ankarström <john@ankarstrom.se> | 2021-05-03 21:46:33 +0200 |
commit | f2b75f9fcf40e72a3c0a0a95bb35a408bd19501a (patch) | |
tree | eacec264e00d0d0369863fbc26addd634082a181 | |
parent | 0d0d8d994603a740446085c6ba096642acaf50d4 (diff) | |
download | xutil-f2b75f9fcf40e72a3c0a0a95bb35a408bd19501a.tar.gz |
Add 'mkmv' utility
-rwxr-xr-x | mkmv | 23 | ||||
-rw-r--r-- | mkmv.1 | 35 |
2 files changed, 58 insertions, 0 deletions
@@ -0,0 +1,23 @@ +#!/usr/bin/perl -w + +# mkmv -- move files to new directory + +use Getopt::Std; +use File::Copy qw/mv/; + +getopts('t:', \%opt); +&usage if not $opt{t}; +&usage if not @ARGV; + +mkdir "$opt{t}.tmp" or die "Could not create directory $opt{t}.tmp: $!\n"; +mv $_, "$opt{t}/$_" or warn "Could not move $_ to $opt{t}/$_: $!\n" for @ARGV; +mv "$opt{t}.tmp", $opt{t} or warn "Could not move $opt{t}.tmp to $opt{t}: $!\n"; + +sub usage { &HELP_MESSAGE; exit 1; } +sub HELP_MESSAGE { + print STDERR <<OPT; +usage: $0 -t target file [...] + -t the target directory +OPT +} +sub VERSION_MESSAGE {} @@ -0,0 +1,35 @@ +.Dd $Mdocdate$ +.Dt mkmv 1 +.Os +. +.Sh NAME +.Nm mkmv +.Nd move files to new directory +. +.Sh SYNOPSIS +.Nm +.Fl t Ar target +.Ar file ... +. +.Sh DESCIPTION +.Pp +.Nm +moves the specified files into a new directory named +.Ar target . +It correctly handles the (not uncommon) case +where one of the moved files has the same name +as the target directory. + +Note that +.Nm +does not support the argument syntax of +.Xr mv 1 . +The explicit +.Fl t +flag is obligatory. +. +.Sh AUTHORS +.Pp +.Nm +is written by John Ankarström +.Aq Mt john (at) ankarstrom.se . |