Cp problems, file exists but error message | Unix Linux Forums | UNIX for Dummies Questions & Answers

  Go Back    


UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !!

Cp problems, file exists but error message

UNIX for Dummies Questions & Answers


Tags
cp, no such file exists

Closed Thread    
 
Thread Tools Search this Thread Display Modes
    #1  
Old 02-04-2013
ucsdee ucsdee is offline
Registered User
 
Join Date: Feb 2013
Last Activity: 4 February 2013, 6:47 PM EST
Posts: 1
Thanks: 2
Thanked 0 Times in 0 Posts
Cp problems, file exists but error message

Basically, I want to copy all files (F03*) in this directory and merge/paste them into a new file (called SMER_2.03.12.SPU), yet the error message is "no such file or directory." I listed what is in my working directory, and the files do exist, so I'm not sure what's going on. The code's at the bottom.*

Thanks, Ellen




Code:
ellens-computer:SMER_2.03 ellen$ pwd
/Users/ellen/Desktop/Ellen/UCSD/SMER_2.03
ellens-computer:SMER_2.03 ellen$ ls
F0300001.SPU    F0300019.SPU    F0300037.SPU    F0300055.SPU    F0300073.SPU    F0300091.SPU    F0300109.SPU
F0300002.SPU    F0300020.SPU    F0300038.SPU    F0300056.SPU    F0300074.SPU    F0300092.SPU    F0300110.SPU
F0300003.SPU    F0300021.SPU    F0300039.SPU    F0300057.SPU    F0300075.SPU    F0300093.SPU    F0300111.SPU
F0300004.SPU    F0300022.SPU    F0300040.SPU    F0300058.SPU    F0300076.SPU    F0300094.SPU    F0300112.SPU
F0300005.SPU    F0300023.SPU    F0300041.SPU    F0300059.SPU    F0300077.SPU    F0300095.SPU    F0300113.SPU
F0300006.SPU    F0300024.SPU    F0300042.SPU    F0300060.SPU    F0300078.SPU    F0300096.SPU    F0300114.SPU
F0300007.SPU    F0300025.SPU    F0300043.SPU    F0300061.SPU    F0300079.SPU    F0300097.SPU    F0300115.SPU
F0300008.SPU    F0300026.SPU    F0300044.SPU    F0300062.SPU    F0300080.SPU    F0300098.SPU    F0300116.SPU
F0300009.SPU    F0300027.SPU    F0300045.SPU    F0300063.SPU    F0300081.SPU    F0300099.SPU    F0300117.SPU
F0300010.SPU    F0300028.SPU    F0300046.SPU    F0300064.SPU    F0300082.SPU    F0300100.SPU    F0300118.SPU
F0300011.SPU    F0300029.SPU    F0300047.SPU    F0300065.SPU    F0300083.SPU    F0300101.SPU    F0300119.SPU
F0300012.SPU    F0300030.SPU    F0300048.SPU    F0300066.SPU    F0300084.SPU    F0300102.SPU    F0300120.SPU
F0300013.SPU    F0300031.SPU    F0300049.SPU    F0300067.SPU    F0300085.SPU    F0300103.SPU
F0300014.SPU    F0300032.SPU    F0300050.SPU    F0300068.SPU    F0300086.SPU    F0300104.SPU
F0300015.SPU    F0300033.SPU    F0300051.SPU    F0300069.SPU    F0300087.SPU    F0300105.SPU
F0300016.SPU    F0300034.SPU    F0300052.SPU    F0300070.SPU    F0300088.SPU    F0300106.SPU
F0300017.SPU    F0300035.SPU    F0300053.SPU    F0300071.SPU    F0300089.SPU    F0300107.SPU
F0300018.SPU    F0300036.SPU    F0300054.SPU    F0300072.SPU    F0300090.SPU    F0300108.SPU
ellens-computer:SMER_2.03 ellen$ cp [F03*] [SMER_2.03.13.spu]
cp: [F03*]: No such file or directory

Moderator's Comments:
Please use code tags next time for your code and data.
Sponsored Links
    #2  
Old 02-04-2013
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
Moderator
 
Join Date: Jan 2007
Last Activity: 25 November 2014, 9:01 AM EST
Location: Варна, България / Milano, Italia
Posts: 5,675
Thanks: 184
Thanked 620 Times in 578 Posts
The shell pattern [F03*] matches F , 0 , 3 and * .
There's no such file in the current directory, so you get an error.

With F03* (no brackets), you'll match all filenames that start with or match exactly F03.

If I understand correctly your requirement,
you'll need something like this:


Code:
cat F03* > SMER_2.03.12.SPU

The Following User Says Thank You to radoulov For This Useful Post:
ucsdee (02-04-2013)
Sponsored Links
    #3  
Old 02-04-2013
bakunin bakunin is offline Forum Staff  
Bughunter Extraordinaire
 
Join Date: May 2005
Last Activity: 25 November 2014, 7:22 PM EST
Location: In the leftmost byte of /dev/kmem
Posts: 4,337
Thanks: 45
Thanked 839 Times in 662 Posts
Quote:
Originally Posted by ucsdee View Post
Basically, I want to copy all files (F03*) in this directory and merge/paste them into a new file (called SMER_2.03.12.SPU), yet the error message is "no such file or directory." I listed what is in my working directory, and the files do exist, so I'm not sure what's going on. The code's at the bottom.*
Actually the problem is some PEBKAC: the following is the reason for the error:

Quote:
Originally Posted by ucsdee View Post
Code:
ellens-computer:SMER_2.03 ellen$ cp [F03*] [SMER_2.03.13.spu]
cp: [F03*]: No such file or directory

"[FO3*]" will expand to a list of all files which names start with "[FO3", end with "]" and have any number of characters of any sort (including none at all) in between these two parts. For example: "[F03]", "[F03x]", "[F03foobar]", etc..

The problem is: you have no file "[F03]", just some files "F03*"! "[" and "]" would be legal parts of a filename, but your files do not contain these. Similar for the target file: if you name it "[SMER_2.03.13.spu]" its name will be exactly that and not "SMER_2.03.13.spu".

But there is an even bigger problem with your command: "cp" copies files but it does not concatenate them. This is what another command, "cat" is for.

Do it the following way:


Code:
rm SMER_2.03.13.spu ; ls F03* | while read FILE ; do cat "$FILE" >> SMER_2.03.13.spu ; done

This will first delete any eventually existing file "SMER_2.03.13.spu", then concatenate one file after the other into this newly created file.

I hope this helps.

bakunin
The Following User Says Thank You to bakunin For This Useful Post:
ucsdee (02-04-2013)
    #4  
Old 02-05-2013
Don Cragun's Avatar
Don Cragun Don Cragun is offline Forum Staff  
Moderator
 
Join Date: Jul 2012
Last Activity: 25 November 2014, 4:16 PM EST
Location: San Jose, CA, USA
Posts: 5,090
Thanks: 195
Thanked 1,704 Times in 1,447 Posts
Quote:
Originally Posted by bakunin View Post
Actually the problem is some PEBKAC:

... ... ...

"[FO3*]" will expand to a list of all files which names start with "[FO3", end with "]" and have any number of characters of any sort (including none at all) in between these two parts. For example: "[F03]", "[F03x]", "[F03foobar]", etc..

... ... ...

bakunin
No. As radoulov said earlier, the file matching pattern [F03*] will only match the four files with names F , 0 , 3 , and * . (The asterisk isn't special in a file matching pattern inside square brackets.)

Even scarier is that the command:

Code:
cp [F03*] [SMER_2.03.13.spu]

could succeed if a file named F , 0 , 3 , or * or any combination of them exist as regular files AND at least one of E , M , R , S , _ , p , s , or u exists as a file and the last such file in this list (assuming you are using a locale with a code set based on ASCII) exists and is a directory. If all of those conditions are true, the regular files matched by both patterns would be copied to the directory named by the last file matching the second pattern.

If none of the single character names matched by the second pattern existed and exactly one of the names matched by the first pattern existed as a regular file, it would be copied to a new regular file named [SMER_2.03.13.spu] , but that can't happen because . always exists.
Sponsored Links
    #5  
Old 02-05-2013
RudiC RudiC is offline Forum Advisor  
Registered User
 
Join Date: Jul 2012
Last Activity: 25 November 2014, 12:59 PM EST
Location: Aachen, Germany
Posts: 4,702
Thanks: 80
Thanked 1,167 Times in 1,097 Posts
Quote:
a file named F , 0 , 3 , or * or any combination of them
Not sure - I'd rather think the [...] would supply exactly one single char out of the four, so would match either of the four single char file names.

Sorry - I obviously misread your statement - you meant "up to four files with one of those single char file names".
Sponsored Links
    #6  
Old 02-05-2013
vbe's Avatar
vbe vbe is offline Forum Staff  
Moderator
 
Join Date: Sep 2005
Last Activity: 25 November 2014, 3:05 PM EST
Location: Switzerland - GE
Posts: 5,926
Thanks: 165
Thanked 431 Times in 403 Posts
This could be a good question for a test on shell (hehe...)
Sponsored Links
    #7  
Old 02-05-2013
Don Cragun's Avatar
Don Cragun Don Cragun is offline Forum Staff  
Moderator
 
Join Date: Jul 2012
Last Activity: 25 November 2014, 4:16 PM EST
Location: San Jose, CA, USA
Posts: 5,090
Thanks: 195
Thanked 1,704 Times in 1,447 Posts
Quote:
Originally Posted by RudiC View Post
Not sure - I'd rather think the [...] would supply exactly one single char out of the four, so would match either of the four single char file names.

Sorry - I obviously misread your statement - you meant "up to four files with one of those single char file names".
Sorry for the ambiguity. What I meant was one or more of those four possible files with a filename consisting of exactly one of those four characters. And, of course, if none of those four single character filenames exist, it would also match a file with the six character name [F03*] .
Sponsored Links
Closed Thread

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
error message when use fork with open file rosecomp UNIX for Dummies Questions & Answers 1 02-27-2010 09:44 PM
PCC-F-NOERRFILE, unable to open error message file kavithakuttyk Shell Programming and Scripting 1 12-02-2009 03:38 PM
File already exists error while using '>' operator jathin12 UNIX for Dummies Questions & Answers 5 02-26-2009 08:05 AM
Error Message: find: cannot open /: Stale NFS file handle ezsurf Solaris 1 10-11-2007 09:04 PM
Fishing out error message within a log file new2ss Shell Programming and Scripting 2 07-01-2006 08:57 AM



All times are GMT -4. The time now is 09:21 PM.