Sponsored Content
Top Forums Shell Programming and Scripting To copy everything except 2 files Post 302244670 by otheus on Wednesday 8th of October 2008 11:19:00 AM
Old 10-08-2008
MySQL

Several ways. In ksh and bash you can use
Code:
cp !(foo|bar) /my/destination/dir

to exclude files named "foo" and "bar".

Otherwise, you can do something like this:
Code:
echo cp `/bin/ls -1 . |grep -v "^foo$" | grep -v "^bar$" ` /my/destination/dir

There are more elegant and faster ways, but I'm not sure about portability. Also, this will pick up directory names, but rm will not remove them. Finally, when you are sure it's what you want to do, remove the "echo".

If your directory is really large, you'll need to use "xargs":
Code:
 ls -1 |grep -v ^foo$ | grep -v ^bar$ |xargs -i sh -c "test -f {} && echo cp {} /my/destination/dir "

This last one actually takes care to only remove files, and not hardlinks, sockets, directories, etc. Remove the "echo" to actually execute the copy.

Finally, there's always find:
Code:
 find  . -maxdepth 1 -type f \! \( -name foo -o -name bar -o -name foo*bar \) -exec echo cp "{}" /my/destination/dir ";"

Once again, this only touches files. You can make it completely recurse all directories by removing "maxdepth". Again, remove the "echo" to actually do it.

Last edited by otheus; 10-08-2008 at 12:21 PM.. Reason: oops you wanted to copy, not remove. put first example in code tags.
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

copy files

Hi, Under the home directory, I want to search for all the *.xml files and move them all into another folder under home. Is it possbile using a single find command . Regards, Chirayu Sutaria (6 Replies)
Discussion started by: chirayus
6 Replies

2. UNIX for Advanced & Expert Users

copy of files

hi all i have a script,which when executed must copy 3 files from a directory on boxA to the same directory on boxB.I'm using scp to copy these files,the problem is out ofthe 3 files only1 is been copied and not the other 2, i have permissons for the files,any ideas are appreciated thnks (2 Replies)
Discussion started by: bkan77
2 Replies

3. SCO

How do you copy files from CD

How do you copy files fra a cd-rom to a directory on the computer? (2 Replies)
Discussion started by: Schnell
2 Replies

4. UNIX for Dummies Questions & Answers

copy only new files or files of a different size

hello i would like to copy files from 1 location to a nother, but it has only to copy files which are newer or have a different filesize. all has to be logged to a copy.log file (als skipped files should be in the log) is this possible with the cp command (1 Reply)
Discussion started by: arnoldg
1 Replies

5. UNIX and Linux Applications

Copy all files

how i can copy all files " select all " in one step t try command cp -t (2 Replies)
Discussion started by: walidfinder
2 Replies

6. UNIX for Dummies Questions & Answers

copy files

Hi Team, I am unable to copy the files, when i run the below script, i am getting error as file not present, not sure what i am missing. # File to be looked upon File_Pattern='*.zip' TMP_FILE=flagfile Check=`find $Directorypath -name $File_Pattern -type f -newer $TMP_FILE -print |... (6 Replies)
Discussion started by: Naveen_5960
6 Replies

7. Solaris

How to safely copy full filesystems with large files (10Gb files)

Hello everyone. Need some help copying a filesystem. The situation is this: I have an oracle DB mounted on /u01 and need to copy it to /u02. /u01 is 500 Gb and /u02 is 300 Gb. The size used on /u01 is 187 Gb. This is running on solaris 9 and both filesystems are UFS. I have tried to do it using:... (14 Replies)
Discussion started by: dragonov7
14 Replies

8. Shell Programming and Scripting

how to copy files followed by list of names of all the files in /etc?

....... (2 Replies)
Discussion started by: pcbuilder
2 Replies

9. 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

10. UNIX for Dummies Questions & Answers

Copy files from one drive to another, keeping most recently modified files

Hi all, I am a bit of a beginner with shell scripting.. What I want to do is merge two drives, for example moving all data from X to Y. If a file in X doesn't exist in Y, it will be moved there. If a file in X also exists in Y, the most recently modified file will be moved to (or kept) in... (5 Replies)
Discussion started by: apocolapse
5 Replies
DH_LINK(1)							     Debhelper								DH_LINK(1)

NAME
dh_link - create symlinks in package build directories SYNOPSIS
dh_link [debhelperoptions] [-A] [-Xitem] [sourcedestination...] DESCRIPTION
dh_link is a debhelper program that creates symlinks in package build directories. dh_link accepts a list of pairs of source and destination files. The source files are the already existing files that will be symlinked from. The destination files are the symlinks that will be created. There must be an equal number of source and destination files specified. Be sure you do specify the full filename to both the source and destination files (unlike you would do if you were using something like ln(1)). dh_link will generate symlinks that comply with Debian policy - absolute when policy says they should be absolute, and relative links with as short a path as possible. It will also create any subdirectories it needs to to put the symlinks in. dh_link also scans the package build tree for existing symlinks which do not conform to Debian policy, and corrects them (v4 or later). FILES
debian/package.links Lists pairs of source and destination files to be symlinked. Each pair should be put on its own line, with the source and destination separated by whitespace. OPTIONS
-A, --all Create any links specified by command line parameters in ALL packages acted on, not just the first. -Xitem, --exclude=item Do not correct symlinks that contain item anywhere in their filename from being corrected to comply with Debian policy. source destination ... Create a file named destination as a link to a file named source. Do this in the package build directory of the first package acted on. (Or in all packages if -A is specified.) EXAMPLES
dh_link usr/share/man/man1/foo.1 usr/share/man/man1/bar.1 Make bar.1 be a symlink to foo.1 dh_link var/lib/foo usr/lib/foo usr/share/man/man1/foo.1 usr/share/man/man1/bar.1 Make /usr/lib/foo/ be a link to /var/lib/foo/, and bar.1 be a symlink to the foo.1 SEE ALSO
debhelper(7) This program is a part of debhelper. AUTHOR
Joey Hess <joeyh@debian.org> 8.9.0ubuntu2.1 2012-06-12 DH_LINK(1)
All times are GMT -4. The time now is 09:29 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy