Carmel NY wrote:
I am attempting to write a simple Bash script that will find all the '*.pem' files in a directory structure and move them to another directory. It seems to work until I get to the copy part where it fails.My scripting skills are not that good. Perhaps someone could tell me what I am doing wrong. This is the script: #! /usr/bin/env bash # Save the field separator oIFS=$IFS # Set it to line breaks IFS=$'\n' for i in $(find ./ -name "*.pem" -print); do # Get the basename BN=$(basename $i) # copy the file to another directory using the base name cp $i /usr/home/tmp/$BN done # Reset the IFS variable IFS=$oIFS exit
That's a one-liner: % find . -depth -name '*.pem' -print0 | cpio -0pdmu /usr/home/tmp Actually, that just /copies/ all of the *.pem files to the other directory tree, so if you want to remove the original files, you'ld also need to do:% find . -name '*.pem' -delete
once you're sure everything has copied across OK, and with the proviso that '.' is neither a parent or child of /usr/home/tmp Cheers, Matthew -- Dr Matthew J Seaman MA, D.Phil. 7 Priory Courtyard Flat 3 PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate Kent, CT11 9PW
signature.asc
Description: OpenPGP digital signature