Sponsored Content
Top Forums Shell Programming and Scripting How to copy a directory without specific files? Post 302910791 by bakunin on Monday 28th of July 2014 07:28:58 AM
Old 07-28-2014
Quote:
Originally Posted by Don Cragun
Oops, I take it back, he missed a key point. His script copied directories as well as regular files.
True - my bad. My only excuse is one shouldn't answer threads before the second coffee.

Code:
cd /path/to/sourcedir
find . -type f ! -name "*.[wW][mM][vV]" -exec cp {} /path/to/targetdir \;

This will probably not work either, because now the directory hierarchy will not become copied and some files (the one in sub-subdirectories) will have no proper targets. I suggest to do it in a two-pass way:

Code:
cd /path/to/sourcedir
find . -type d  -exec mkdir -p /path/to/targetdir{} \;
find . -type f ! -name "*.[wW][mM][vV]" -exec cp {} /path/to/targetdir +

The first pass creates a copy of the directory structure, the second copies all the files. If you need to copy filemodes, ownerships, etc. too, you need to modify the "cp"-command accordingly: "cp -p ...".

@Chubler_XL: using "tar" for that was my first impulse, but it would limit the solution to a system where the GNU-tar is available.

I hope this helps.

bakunin
 

10 More Discussions You Might Find Interesting

1. Solaris

To copy the files newer than specific date

Dear all, Can you help me in copying files newer than speciifc date Thanks in advance, Rajesh (3 Replies)
Discussion started by: RAJESHKANNA
3 Replies

2. Shell Programming and Scripting

Recursively copy only specific files from a directory tree

Hi I am a shell-script newbie and am looking to synchronize certain files in two directory structures. Both these directory-trees are in CVS and so I dont want the CVS directory to be copied over. I want only .sh and .pl files in each subdirectory under these directory trees to be... (3 Replies)
Discussion started by: sharpsharkrocks
3 Replies

3. Shell Programming and Scripting

Delete all files if another files in the same directory has a matching occurence of a specific word

Hello, I have several files in a specific directory. A specific string in one file can occur in another files. If this string is in other files. Then all the files in which this string occured should be deleted and only 1 file should remain with the string. Example. file1 ShortName "Blue... (2 Replies)
Discussion started by: premier_de
2 Replies

4. Shell Programming and Scripting

How to copy specific files when you don't know the file name?

I hope this isn't as silly as it sounds from the title of the thread. I have software that outputs files where the name starts with a real number followed by underscore as a prefix to an input file name. These will list in the directory with the file with the smallest real number prefix as the... (5 Replies)
Discussion started by: LMHmedchem
5 Replies

5. Shell Programming and Scripting

copy specific files and count them - not as easy as it seems!

Hi all: Here's my dilemma: to identify files of a specific type, copy them to a new location while preserving the original file attributes (date, time, full path, etc), and at the same time capture the count of the number of files identified as a variable for later reporting. Here's where I... (9 Replies)
Discussion started by: Yamaha Evans
9 Replies

6. Red Hat

Unable to copy files due to many files in directory

I have directory that has some billion file inside , i tried copy some files for specific date but it's always did not respond for long time and did not give any result.. i tried everything with find command and also with xargs.. even this command find . -mtime -2 -print | xargs ls -d did not... (2 Replies)
Discussion started by: before4
2 Replies

7. Shell Programming and Scripting

Copy the files in directory and sub folders as it is to another directory.

How to copy files from one directory to another directory with the subfolders copied. If i have folder1/sub1/sub2/* it needs to copy files to folder2/sub1/sub2/*. I do not want to create sub folders in folder2. Can copy command create them automatically? I tried cp -a and cp -R but did... (4 Replies)
Discussion started by: santosh2626
4 Replies

8. Shell Programming and Scripting

Delete all files if another files in the same directory has a matching occurrence of a specific word

he following are the files available in my directory RSK_123_20141113_031500.txt RSK_123_20141113_081500.txt RSK_126_20141113_041500.txt RSK_126_20141113_081800.txt RSK_128_20141113_091600.txt Here, "RSK" is file prefix and 123 is a code name and rest is just timestamp of the file when its... (7 Replies)
Discussion started by: kridhick
7 Replies

9. Shell Programming and Scripting

Rsync to copy specific subfolders and files to new directory

RootFolderI: RootFolderI/FolderA/Subfolder1/Subsub1/JPG1.jpg -> want this jpg RootFolderI/FolderA/Subfolder2/Subsub1/JPG2.jpg -> want this jpg RootFolderI/FolderA/Subfolder2/Subsub2/JPG3.jpg . . . RootFolderI/FolderB/Subfolder1/Subsub1/JPG4.jpg -> want this jpg ... (1 Reply)
Discussion started by: blocnt
1 Replies

10. Shell Programming and Scripting

Copy Specific Files Recursively

Is it possible to only copy selected files+its directories when you are copying recursively? find /OriginalFolder/* -type -d \{ -mtime 1 -o -mtime 2 \ } -exec cp -R {} /CopyTo/'hostname'__CopyTo/ \; -print From the above line, I want to only copy *txt and *ini files from /OriginalFolder/* ... (4 Replies)
Discussion started by: apacheLinux
4 Replies
install(1)						      General Commands Manual							install(1)

NAME
install - Installs a command SYNOPSIS
install [-sS] [-c targetdir] [-g group] [-m mode] [-u owner] file [searchdir...] install [-osS] [-f targetdir] [-g group] [-m mode] [-u owner] file [searchdir...] install [-g group] [-iosS] [-m mode] [-n targetdir] [-u owner] file [searchdir...] install [-g group] [-MosS] [-m mode] [-u owner] file [searchdir...] The install command installs file in a specific place within a file system. It is most often used in makefiles. OPTIONS
Installs file in targetdir only if there is not already a copy there. If there is a copy of file in targetdir, the command issues a mes- sage to that effect and exits without overwriting the file. This option can be used alone or with the -g, -m, -s, -S, or -u options. Forces installation of file in targetdir even if a copy already exists there. If there is already a copy of file in targetdir, the command sets the new copy's mode and owner to those of the old copy. If there is not already a copy of file in targetdir, the command sets the mode to 755 and the owner to bin. This option can be used alone or with the -g, -m, -o, -s, -S, or -u options. Specifies a group other than bin for the destination file. Ignores the default directory search list. Searches for the file to be installed only in the directo- ries specified on the command line (searchdir ...). This option cannot be used with the -c, -f, or -M options. Moves file to targetdir instead of copying it. This option cannot be used with the -c, -f, -i, or -n options. Specifies a mode other than 755 for the destination file. Installs file in targetdir if there is no copy in any of the searched directories (searchdir ...). Sets the mode of the file to 755 and the owner to bin. This option cannot be used with the -c, -f, or -M options. Saves the old copy of file by renaming it OLDfile and leaving it in the directory where it was found. This option cannot be used with the -c option. Specifies an owner other than bin for the destination file. Suppresses the display of all but error messages. Causes the binary to be stripped after installation; see strip(1). DESCRIPTION
The install command copies (or moves) file into the appropriate directory, retaining the owner and permissions of the existing copy, if any. A newly created file has permission code 755, owner bin, and group bin. The install command writes a message telling you which files it is replacing or creating and where they are going. If you supply no options or search directories (searchdir ...), the install command searches the /bin, /usr/bin, /etc, /lib, and /usr/lib directories in that order for a file with the same name as file. The command overwrites the first matching file with file and issues a message indicating that it has done so. If no match is found, the command tells you and exits without taking further action. If any search directories (searchdir ...) are specified on the command line, the install command searches them before it searches the default directories. EXAMPLES
To replace a command that already exists in one of the default directories, enter: install fixit This replaces the file fixit if it is found in the /bin, /usr/bin, /etc, /lib, or /usr/lib directory. Otherwise, the file fixit is not installed. For example, if /usr/bin/fixit exists, then this file is replaced by a copy of the file fixit in the current direc- tory. To replace a command that already exists in a specified or default directory while preserving the old version, enter: install -o fixit /etc /usr/games This replaces the file fixit if it is found in the /etc or /usr/games directory, or in one of the default directories. Otherwise, the file fixit is not installed. If the file is replaced, the old version is preserved by renaming it OLDfixit in the directory in which it was found. To replace a command that already exists in a specified directory, enter: install -i fixit /u/judith/bin /u/bernice/bin /usr/games This replaces the file fixit if it is found in the /u/judith/bin, /u/bernice/bin, or /usr/games directory. Otherwise, the file is not installed. To replace a command found in a default directory, or install it in a specified directory if it is not found, enter: install -n /usr/bin fixit This replaces the file fixit if it is found in one of the default directories. If the file is not found, it is installed as /usr/bin/fixit. To install a new command, enter: install -c /usr/bin fixit This creates a new command by installing a copy of the fixit file as /usr/bin/fixit, but only if this file does not already exist. To install a command in a specified directory whether or not it already exists, enter: install -f /usr/bin -o -s fixit This forces the fixit file to be installed as /usr/bin/fixit whether or not /usr/bin/fixit already exists. The old version, if any, is preserved by renaming it to /usr/bin/OLDfixit (a result of the -o option). The messages that tell where the new command was installed are suppressed (a result of the -s option). SEE ALSO
Commands: chgrp(1), chmod(1), chown(1), cp(1), installbsd(1), make(1), mv(1), strip(1) install(1)
All times are GMT -4. The time now is 01:38 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy