Sponsored Content
Top Forums Shell Programming and Scripting Recursive search for files and copy to new directories Post 302664545 by flyawaymike on Friday 29th of June 2012 06:04:13 PM
Old 06-29-2012
Recursive search for files and copy to new directories

So I have extremely limited experience with shell scripting and I was hoping someone could point out a few commands I need to use in order to pull this off with a shell script like BASH or whatnot (this is on OS X).

I need to search out for filenames with account numbers in the name itself (potentially more than one file with an account number plus other characters in the name), and copy them to a temporary folder, either in their own subfolders (named after the account number), or all in the same place. Basically I'm just trying to extract an copy some PDF files out of one location and put them in another. The search of the source location should be a recursive search. The filenames are basically "textstring12345689textstring.pdf"

I had this working at one point a while back using PHP, though it would sometime crap out on me after a larger number of runs through the loop. Regardless, I'd ideally like to just do this in a shell script anyway as the PHP script is pretty slow (it's searching through like a million files in a bunch of folders). Here is basically what I did in PHP:

Code:
<?php

$handle = @fopen('/Users/me/www/nexus/media/encore1.csv', "r");
mkdir ("/Users/me/www/temp");

if ($handle) {
	while (!feof($handle)) {
		$lines[] = fgets($handle);
	}
	fclose($handle);
}

for ($a=0; $a<count($lines); $a++)
{
	$cardnumber = trim($lines[$a]);
	print "\"" . $cardnumber . "\"<br>";
	$searchStr = "find . -name \"*" . $cardnumber . "*\"";
	
	print $searchStr . "<br>";    // just watching the progress
	
	$tempRoot = "/Users/me/www/temp/";
	$tempFolder = $tempRoot . $cardnumber;
	
	if (strlen($cardnumber) >= 16) {
		exec($searchStr, $output, $return);
	
		mkdir($tempFolder);
		
		foreach ( $output as $file) {
	
			$destinationFile = $tempFolder . "/" . basename($file);
			copy($file, $destinationFile);
			print basename($file) . " copied to " . $destinationFile . "<br>";   // again progress check
			
		}
	} else {
		print "Invalid Account Number ";
	}
	unset($output); 
}
?>

Pardon the lack of indentation in that code, it doesn't pass through when pasting in it.

The CSV file is just a single column list of account numbers. I'm sure this can be easily done with some kind of search and copy and make directory commands in a shell script, but I'm not really familiar with any.

Would anyone one have some pointers on which commands that are counterparts to the PHP ones above?

Last edited by flyawaymike; 06-29-2012 at 09:28 PM..
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

recursive copy of hidden files

I need to know how to copy hidden files recursively? cp -r sourceDir/* targetDir/. ignores the hidden files. Thank you!! (2 Replies)
Discussion started by: usfrog
2 Replies

2. UNIX for Dummies Questions & Answers

copy multiple files in different directories

I have a report file that is generated every day by a scheduled process. Each day the file is written to a directory named .../blah_blah/Y07/MM-DD-YY/reportmmddyy.tab I want to copy all of this reports to a separate directory without having to do it one by one. However, if I try cp... (3 Replies)
Discussion started by: ken2834
3 Replies

3. Cybersecurity

Recursive search for group or other writeable 'dot' files

I'm looking for a easy way to do a recursive search through a directory structure for all files that begin with '.' that are group or other writable. Any suggestions? (5 Replies)
Discussion started by: maficdan
5 Replies

4. Shell Programming and Scripting

Recursive call to find files and directories in Shell script from current path.

################################################################ Copy this script to your path from where you want to search for all the files and directories in subdirectories recursively. ################################################################# code starts here... (2 Replies)
Discussion started by: Ramit_Gupta
2 Replies

5. UNIX for Dummies Questions & Answers

Copy Directories excluding files

Hi guys, I want to copy folder and sub folders only. I don't want the files. If i use cp -r command it will copy entirely with files. Could any one suggest me. Thanks in advance (1 Reply)
Discussion started by: karthik82
1 Replies

6. UNIX for Dummies Questions & Answers

how can i copy those files into other directories have the same name

how can i copy those files into other directories have the same name but different in the end i have files in directory called test: 10_10_asdadfsdfad.txt 10_10_11_asdawqefwkjasd.txt 10_10_11_12_asdafjjhoqwd.txt i want to put them in exist directory thart i have on my system i have... (1 Reply)
Discussion started by: t17
1 Replies

7. Shell Programming and Scripting

Recursive looping through files and directories

hi; i need a script which will go to all directories and subdirectories and print the filenames as follow; here i m printing only files listing in current directory reason i m doing this is coz i want to perform some operations according to filename achieved so cant use find command;... (4 Replies)
Discussion started by: ajaypadvi
4 Replies

8. Shell Programming and Scripting

recursive search and copy

Hello again. Well, I need help again sooner as I thought. Now I want to search for files with a known name within all subdirs, and copy the to differently named files in the same directory. For example if I had only one file to copy, I would just usecp fileName newFileNamebut to do this... (1 Reply)
Discussion started by: cabaciucia
1 Replies

9. HP-UX

Recursive copy of Folders with files

Dear All, I will appreciate any help received. Our system is running on hpux v1 My problem is as follows: We have many customer folders with name fd000100, fd000101 and so on e.g. (Testrun)(testsqa):/>ll /TESTrun/fd000100 total 48 drwxrwx--- 2 fq000100 test 96 Jun 27 2004... (17 Replies)
Discussion started by: mhbd
17 Replies

10. Shell Programming and Scripting

Copy files in respective directories

Hi Guys, I need to copy the files to respective directories based on name of the file. My script is something like below con=$1 for file in `cat $con` do file_tmp=$(ls -t1 $path| grep -i $file | head -n 1) echo $file_tmp if then cp $path$file_tmp $DIR/ap if then... (16 Replies)
Discussion started by: Master_Mind
16 Replies
php-config(1)							Scripting Language						     php-config(1)

NAME
php-config - get information about PHP configuration and compile options SYNOPSIS
php-config [options] DESCRIPTION
php-config is a simple shell script for obtaining information about installed PHP configuration. OPTIONS
--prefix Directory prefix where PHP is installed, e.g. /usr/local --includes List of -I options with all include files --ldflags LD Flags which PHP was compiled with --libs Extra libraries which PHP was compiled with --man-dir The directory prefix where the manpages is installed --extension-dir Directory where extensions are searched by default --include-dir Directory prefix where header files are installed by default --php-binary Full path to php CLI or CGI binary --php-sapis Show all SAPI modules available --configure-options Configure options to recreate configuration of current PHP installation --version PHP version --vernum PHP version as integer SEE ALSO
php(1) VERSION INFORMATION
This manpage describes php, version 7.1.19. COPYRIGHT
Copyright (C) 1997-2018 The PHP Group This source file is subject to version 3.01 of the PHP license, that is bundled with this package in the file LICENSE, and is available through the world-wide-web at the following url: http://www.php.net/license/3_01.txt If you did not receive a copy of the PHP license and are unable to obtain it through the world-wide-web, please send a note to license@php.net so we can mail you a copy immediately. The PHP Group 2018 php-config(1)
All times are GMT -4. The time now is 08:37 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy