mv xrags and cp

John Dangler jdangler at atlantic.net
Tue Jan 16 17:20:33 UTC 2007


On Tue, 2007-01-16 at 19:49 +0300, OOzy Pal wrote:
> On 1/16/07, Marius Gedminas <marius at pov.lt> wrote:
> > On Tue, Jan 16, 2007 at 12:16:53AM +0300, OOzy Pal wrote:
> > > I am trying to search for all images in all direcotries under olddir
> > > and cp them to one single direcotry called newdir bearing in mind that
> > > there might be duplicate files
> > >
> > > home/t/1.jpg
> > > home/g/1.jpg
> >
> > What do you want done with duplcate files?
> >
> > > I tried the following but no help
> > >
> > > find olddir -name *.jpg |xargs -t -I {} cp {} newdir/{}
> > >
> > > I get errors like
> > >
> > > cp test/ksi-1253.jpg newdir/test/ksi-1253.jpg
> > > cp: cannot create regular file `newdir/test/ksi-1253.jpg': No such
> > > file or directory
> > >
> > > note that there is nothing under newdir
> >
> > If you want the new files to end up in the same directory, do not
> > mention {} in the cp's destination (and I also suggest you quote
> > '*.jpg'):
> >
> >   find olddir -name '*.jpg' |xargs -t -I {} cp {} newdir/
> >
> > If you want to deal with unsafe characters in file names, better do
> >
> >   find olddir -name '*.jpg' -print0 |xargs -0 -t -I {} cp {} newdir/
> >
> > Actually, in this case you don't win much from using xargs, so you
> > could just as well use find -exec:
> >
> >   find olddir -name '*.jpg' -exec cp {} newdir/ \;
> >
> > HTH,
> > Marius Gedminas
> > --
> > How much net work could a network work, if a network could net work?
> >
> >
> > -----BEGIN PGP SIGNATURE-----
> > Version: GnuPG v1.4.1 (GNU/Linux)
> >
> > iD8DBQFFq/M4kVdEXeem148RAiXAAJ9+TmT/JnLhqZXTmmwaAoJrNKbxDgCbB8+t
> > aRoME4Og2sUPh+zism2V58Q=
> > =XiTR
> > -----END PGP SIGNATURE-----
> >
> >
> > --
> > ubuntu-users mailing list
> > ubuntu-users at lists.ubuntu.com
> > Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-users
> >
> >
> >
> 
> >What do you want done with duplcate files?
> there not duplicate in content but they have the same name.
> 
> This command is good
>  find olddir -name '*.jpg' -exec cp {} newdir/ \;
> 
> how can I make the above command rename the file in the format of
> 
> date +%s%N.jpg
> 
> to make sure that each file gets a unique name?
> 
write a shell script around the command like...
for word in `find olddir -name '*.jpg'
do
... copy command
done
(depending on how you want to format the names, a simple `cp $word
newdir/`date` would work, but if you want something like
FILE_0101_1.jpg , you may have to employ awk to format the file names)

> -- 
> OOzy
> Kubuntu-Edgy
> 





More information about the ubuntu-users mailing list