cp/ditto and ignore I/O errors?


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers cp/ditto and ignore I/O errors?
# 1  
Old 06-08-2010
cp/ditto and ignore I/O errors?

Hi I am copying some old CDs to HD and while copying a lot of them have I/O errors. What I'm doing right now is sudoing the cp command to force the cp to finish but when I do this it takes about an hour to copy 500mb, which without errors would normally take 2-3 minutes.

I assume it takes so long because when it encounters an error it will just keep on trying to copy it until it fails a certain number of times then gives up? Is there any way I can tell it to not try so many times and give up faster, or just ignore the errors and copy what it can?
I also tried the ditto command and it seems to just be doing the same thing as cp...
So basically I just want it to copy and if it encounters an error to move on to the next file. If we can figure out a good way to do this I would also like to get it to output the errors to a text file, I was thinking:

"$ sudo cp -R /Volumes/Source/ ~/Destination/Destination/ 2>&1 | cat /Destination/Destination/log.txt" ?
If I could add something to that to get it to ignore the errors that would really save me a lot of hours and I would be very grateful, and also would the above work to save the std error output to a txt file?
Thanks.
Any help is appreciated.
I'm running OS X 10.5

Last edited by pludi; 07-04-2010 at 12:58 PM..
 
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to ignore first or last parameter

Can someone help me of doing something like this send.sh #!/bin/bash for last; do true; done echo $* | gammu sendsms TEXT $last every thing is good except that when i launch the script like this ./send.sh This is the message i want to send +63922XXXXXXX it turned out the message of... (2 Replies)
Discussion started by: arturo322
2 Replies

2. UNIX for Dummies Questions & Answers

How to ignore errors in script

I have a simple script that processes files. Here's a simplified example of what I'm doing: foreach t (web.*) mv $t dnw$t:e.log end foreach t (card.*) mv $t card$t:e.log end The problem is that sometimes there is no web.* file. In that case, I get an error "foreach: No match" and... (4 Replies)
Discussion started by: software5723
4 Replies

3. UNIX for Dummies Questions & Answers

Forcing Makefile to Ignore Errors

Is there A way I can Force a makefile to ignore errors? i believe it is using gcc. i have a set of commands in the makefile that i want to run and each time the makefile gets to the point of this commands, it aborts because of the commands. how can i get the makefile to keep running... (3 Replies)
Discussion started by: SkySmart
3 Replies

4. UNIX for Dummies Questions & Answers

please ignore this....

Most of the people think that they can not use Unix as desktop. By this poll we gone tell them that we not just use Unix as desktop but also love different display managers like GNOME, KDE etc..... (1 Reply)
Discussion started by: ynilesh
1 Replies

5. UNIX for Dummies Questions & Answers

Major OS errors/Bash errors help!!!!

Hi all, dummy here.... I have major errors on entering the shell. On login I get: -bash: dircolors: command not found -bash: tr: command not found -bash: fgrep: command not found -bash: grep: command not found -bash: grep: command not found -bash: id: command not found -bash: [: =: unary... (12 Replies)
Discussion started by: wcmmlynn
12 Replies

6. Shell Programming and Scripting

How to ignore '.' files

I'm running Fedora Core 6 as an FTP server on a powerMac G4... I'm trying to create a script to remove files older than 3 days... I'm able to find all data older than 3 days but it finds hidden files such as /home/ftp/goossens/.canna /home/ftp/goossens/.kde... (4 Replies)
Discussion started by: James_UK
4 Replies

7. AIX

Adapter Errors and Link Errors

$ errpt | more IDENTIFIER TIMESTAMP T C RESOURCE_NAME DESCRIPTION 3074FEB7 0802050205 T H fscsi1 ADAPTER ERROR B8113DD1 0802050205 T H fcs1 LINK ERROR B8113DD1 0802050205 T H fcs1 LINK ERROR 3074FEB7 0802050205 T H fscsi0 ADAPTER ERROR B8113DD1 ... (2 Replies)
Discussion started by: mcastill66
2 Replies

8. UNIX for Advanced & Expert Users

Adapter Errors and Link Errors

$ errpt | more IDENTIFIER TIMESTAMP T C RESOURCE_NAME DESCRIPTION 3074FEB7 0802050205 T H fscsi1 ADAPTER ERROR B8113DD1 0802050205 T H fcs1 LINK ERROR B8113DD1 0802050205 T H fcs1 LINK ERROR 3074FEB7 0802050205 T H fscsi0 ADAPTER ERROR B8113DD1 ... (0 Replies)
Discussion started by: mcastill66
0 Replies

9. UNIX for Dummies Questions & Answers

Command: ditto on mac os x?

Hi, I am trying to find more information on a command called ditto on Mac OS X. Can someone point me to the right direction. Thanks, -n (2 Replies)
Discussion started by: Insomniac
2 Replies
Login or Register to Ask a Question
DITTO(1)						    BSD General Commands Manual 						  DITTO(1)

NAME
ditto -- copy directory hierarchies, create and extract archives SYNOPSIS
ditto [-v] [-V] [-X] [<options>] src ... dst_directory ditto [-v] [-V] [<options>] src_file dst_file ditto -c [-z | -j | -k] [-v] [-V] [-X] [<options>] src dst_archive ditto -x [-z | -j | -k] [-v] [-V] [<options>] src_archive ... dst_directory ditto -h | --help DESCRIPTION
In its first form, ditto copies one or more source files or directories to a destination directory. If the destination directory does not exist it will be created before the first source is copied. If the destination directory already exists then the source directories are merged with the previous contents of the destination. In its second form, ditto copies a file to the supplied dst_file pathname. The next two forms reflect ditto's ability to create and extract archives. These archives can be either CPIO format (preferred for unix con- tent) or PKZip (for Windows compatibility). src_archive (and dst_archive) can be the single character '-', causing ditto to read (write) ar- chive data from stdin (or to stdout, respectively). ditto follows symbolic links provided as arguments but does not follow any links as it traverses the source or destination hierarchies. ditto overwrites existing files, symbolic links, and devices in the destination when these are copied from a source. The resulting files, links, and devices will have the same mode, access time, modification time, owner, and group as the source items from which they are copied. Pipes, sockets, and files with names beginning with .nfs or .afpDeleted will be ignored. ditto does not modify the mode, owner, group, extended attributes, or ACLs of existing directories in the destination. Files and symbolic links cannot overwrite directories or vice- versa. ditto can be used to "thin" Universal Mach-O binaries during a copy. ditto can also copy files selectively based on the contents of a BOM ("Bill of Materials") file. ditto preserves file hard links (but not directory hard links) present in the source directories and preserves setuid and setgid modes when run as the superuser. ditto will preserve resource forks and HFS meta-data information when copying unless instructed otherwise using --norsrc . Similarly, ditto will preserve extended attributes and Access Control Lists (ACLs) unless --noextattr or --noacl is passed. DITTONORSRC can be set in the environment as an alias to --norsrc --noextattr --noacl on the command line. OPTIONS
-h Print full usage. -v Print a line of output to stderr for each source directory copied. -V Print a line of output to stderr for every file, symbolic link, and device copied. -X When copying one or more source directories, do not descend into directories that have a different device ID. -c Create an archive at the destination path. The default format is CPIO, unless -k is given. CPIO archives should be stored in files with names ending in .cpio. Compressed CPIO archives should be stored in files with names ending in .cpgz. -z Create compressed CPIO archives, using gzip(1) compression. -j Create compressed CPIO archives, using bzip2(1) compression. -x Extract the archives given as source arguments. The format is assumed to be CPIO, unless -k is given. Compressed CPIO is auto- matically handled. -k Create or extract from a PKZip archive instead of the default CPIO. PKZip archives should be stored in filenames ending in .zip. --keepParent When creating an archive, embed the parent directory name src in dst_archive. --arch arch Thin Universal binaries to the specified architecture. If multiple --arch options are specified then the resulting destination file will contain each of the specified architectures (if they are present in the source file). arch should be specified as "i386", "x86_64", etc. --bom bom Copy only files, links, devices, and directories that are present in the specified BOM. --rsrc Preserve resource forks and HFS meta-data. ditto will store this data in Carbon-compatible ._ AppleDouble files on filesystems that do not natively support resource forks. As of Mac OS X 10.4, --rsrc is default behavior. --norsrc Do not preserve resource forks and HFS meta-data. If both --norsrc and --rsrc are passed, whichever is passed last will take precedence. Both options override DITTONORSRC. Unless explicitly specified, --norsrc also implies --noextattr and --noacl to match the behavior of Mac OS X 10.4. --extattr Preserve extended attributes (requires --rsrc). As of Mac OS X 10.5, --extattr is the default. --noextattr Do not preserve extended attributes (requires --norsrc). --qtn Preserve quarantine information. As of Mac OS X 10.5, --qtn is the default. --noqtn Do not preserve quarantine information. --acl Preserve Access Control Lists (ACLs). As of Mac OS X 10.5, --acl is the default. --noacl Do not preserve ACLs. --nocache Do not perform copies using the Mac OS X Unified Buffer Cache. Files read and written will not be cached, although if the file is already present in the cache, the cached information will be used. --hfsCompression When copying files or extracting content from an archive, if the destination is an HFS+ volume that supports compression, all the content will be compressed if appropriate. This is only supported on Mac OS X 10.6 or later, and is only intended to be used in installation and backup scenarios that involve system files. Since files using HFS+ compression are not readable on versions of Mac OS X earlier than 10.6, this flag should not be used when dealing with non-system files or other user-generated content that will be used on a version of Mac OS X earlier than 10.6. --nohfsCompression Do not compress files with HFS+ compression when copying or extracting content from an archive unless the content is already compressed with HFS+ compression. This flag is only supported on Mac OS X 10.6 or later. --nohfsCompression is the default. --preserveHFSCompression When copying files to an HFS+ volume that supports compression, ditto will preserve the compression of any source files that were using HFS+ compression. This flag is only supported on Mac OS X 10.6 or later. --preserveHFSCompression is the default. --nopreserveHFSCompression Do not preserve HFS+ compression when copying files that are already compressed with HFS+ compression. This is only supported on Mac OS X 10.6 or later. --sequesterRsrc When creating a PKZip archive, preserve resource forks and HFS meta-data in the subdirectory __MACOSX. PKZip extraction will automatically find these resources. --zlibCompressionLevel num Sets the compression level to use when creating a PKZip archive. The compression level can be set from 0 to 9, where 0 repre- sents no compression, and 9 represents optimal (slowest) compression. By default, ditto will use the default compression level as defined by zlib. --password When extracting a password-encrypted ZIP archive, you must specify --password to allow ditto to prompt for a password to use to extract the contents of the file. If this option is not provided, and a password-encrypted file is encountered, ditto will emit an error message. EXAMPLES
The command: ditto src_directory dst_directory copies the contents of src_directory into dst_directory, creating dst_directory if it does not already exist. The command: ditto src_directory dir/dst_directory copies the contents of src_directory into dir/dst_directory, creating dir and dst_directory if they don't already exist. The command: ditto src-1 ... src-n dst_directory copies the contents of all of the src directories into dst_directory, creating dst_directory if it does not already exist. The command: ditto --arch ppc universal_file thin_file copies the contents of universal_file into thin_file, thinning executable code to ppc-only on the fly. The command: ditto -c --norsrc Scripts -|ssh rhost ditto -x --norsrc - ./Scripts copies Scripts, skipping any resources or meta-data, to rhost. The command: pax -f archive.cpio will list the files in the CPIO archive archive.cpio. The command: pax -zf archive.cpgz will list the files in the compressed CPIO archive archive.cpgz. The command: ditto -c -k --sequesterRsrc --keepParent src_directory archive.zip will create a PKZip archive similarly to the Finder's Compress functionality. The command: unzip -l archive.zip will list the files in the PKZip archive archive.zip. ERRORS
ditto returns 0 if everything is copied, otherwise non-zero. ditto almost never gives up, preferring to report errors along the way. Diag- nostic messages will be printed to standard error. ENVIRONMENT
DITTOABORT If the environment variable DITTOABORT is set, ditto will call abort(3) if it encounters a fatal error. DITTONORSRC If DITTONORSRC is set but --rsrc, --extattr, and --acl are not specified, ditto will not preserve those additional types of meta- data. BUGS
ditto doesn't copy directories into directories in the same way as cp(1). In particular, ditto foo bar will copy the contents of foo into bar, whereas cp -r foo bar copies foo itself into bar. Though this is not a bug, some may consider this bug-like behavior. --keepParent for non-archive copies will eventually alleviate this problem. SEE ALSO
bom(5), lsbom(8), mkbom(8), cpio(1), zip(1), gzip(1), bzip2(1), tar(1). Mac OS X December 19, 2008 Mac OS X