Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-ID: From: "Buchbinder, Barry (NIH/NIAID)" To: cygwin AT cygwin DOT com Subject: RE: Problem with spaces embedded in filenames Date: Thu, 3 Jun 2004 17:46:04 -0400 MIME-Version: 1.0 Content-Type: text/plain X-IsSubscribed: yes I've always had problems getting the correct number of backslashes. Try quotes. For example, change sed to sed -e 's/^.*$/"&"/' to give "path/file" If that doesn't work, try doubling them sed -e 's/^.*$/"&"/' -e "s/^.*$/'&'/" to give '"path/file"' You might need to change which quotes are on the inside/outside. If that isn't enough protection, feed the quoted file names into a file and then use ... `cat file` Alternatively, you could check the tar documentation to see if it can take the file list from a file or standard input. Or it might even be able to do the date selection for you instead of using find -- that should avoid quoting problems. -----Original Message----- From: Will Senn Sent: Thursday, June 03, 2004 5:04 PM To: cygwin AT cygwin DOT com Subject: Problem with spaces embedded in filenames -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, I am doing backups with tar on XP. I thought that I could touch a file when I did a full backup and then use find with newer to only back up files that are newer than the touched file: ~ touch /cygdrive/i/backups/full_backup ~ find /cygdrive/d/sandbox -newer /cygdrive/i/backups/full_backup ! ~ -type d -print | sed -e "s/\ /\\\\ /g"` this command produces the following list of files: ~ /cygdrive/d/sandbox/another\ test.txt ~ /cygdrive/d/sandbox/test.txt 'another test.txt' is a file with an embedded space (I figured I needed to escape the space, hence the sed) The problem is this, when I use the output of this command as the input of another it complains. ie. ~ $ ls -l `find /cygdrive/d/sandbox -newer ~ /cygdrive/i/backups/_sandbox.full ! -type d -print | sed -e "s/\ ~ /\\\\ /g"` ~ ls: /cygdrive/d/sandbox/another: No such file or directory ~ -rwx------+ 1 wsenn None 0 Jun 3 14:45 ~ /cygdrive/d/sandbox/test.txt ~ -rw-r--r-- 1 wsenn None 69 Jun 3 15:26 test.txt Any help would be appreciated. Here's the tar command I planned on using: ~ tar czf /cygdrive/i/${TODAY}_I_sandbox.tgz `find ~ /cygdrive/d/sandbox -newer /cygdrive/i/backups/full_backup ! -type ~ d -print | sed -e s/\ /\\\\\ /g` Later, Will -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (MingW32) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFAv5IjBvT4ZqqGK0sRAqHTAJ9Jq0U+GX0EtEU8lM8vUkv4xwbMUQCdFvtU n2DkKcAkUkMrtDPOJzuwgOQ= =4iEV -----END PGP SIGNATURE----- -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/