Cp problems, file exists but error message


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Cp problems, file exists but error message
# 1  
Old 02-04-2013
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:
Mod Comment Please use code tags next time for your code and data.
# 2  
Old 02-04-2013
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

This User Gave Thanks to radoulov For This Post:
# 3  
Old 02-04-2013
Quote:
Originally Posted by ucsdee
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
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
This User Gave Thanks to bakunin For This Post:
# 4  
Old 02-05-2013
Quote:
Originally Posted by bakunin
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.
# 5  
Old 02-05-2013
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".
# 6  
Old 02-05-2013
This could be a good question for a test on shell (hehe...)
# 7  
Old 02-05-2013
Quote:
Originally Posted by RudiC
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*].
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Error message while openning the xls file generated by UNIX

Hi All, I have created a unix script to mail the xls file.This is being done using mailx command fdate=`tail -1 abc.xls | cut -c1-8` SUBJECT="CARD GL Exceptions : ${ENV} for ${fdate}" destname=CARD_GL_Exceptions_$fdate sed 's/#BUSINESS/BUSINESS/1' abc.xls > abc2.xls mv abc2.xls abc.xls... (2 Replies)
Discussion started by: karthik adiga
2 Replies

2. Shell Programming and Scripting

Refrain the Message of File Not exists display out

Hi All, Would like to ask on how to refrain the message file not exists from display out. if ; then When it execute, the OS will throw the error file does not exists ls: 0653-341 The file COL_*/*.CTL does not exist. Thanks. (3 Replies)
Discussion started by: ckwan
3 Replies

3. Shell Programming and Scripting

Taking error message from XML file, amending to script

Hello all, I have a question about creating a script that will look for messages on one of our MQ series systems, and fix them. Currently, if we issue a command for example Command.sh errors it gives us: ID:c3e2d840d4f3f3d74040404040404040cb2ef4e62f70f702 <?xml version="1.0"... (3 Replies)
Discussion started by: jeffs42885
3 Replies

4. Shell Programming and Scripting

File exists, but cannot be opened.How to check- whether it could be opened to read when it exists

Hi #Testing for file existence if ; then echo 'SCHOOL data is available for processing' else echo 'SCHOOL DATA IS NOT AVAILABLE FOR PROCESSING' : i wrote a script, where it begins by checking if file exists or not. If it exists, it truncates the database... (2 Replies)
Discussion started by: rxg
2 Replies

5. UNIX for Dummies Questions & Answers

error message when use fork with open file

I get this message when I write myshell.c program "VM pagefault:SIGSEGV bad add 0x0 err 0x4 nopage read myshell PM: ciredump signal 11 for 1725 /myshell memory fault (core dumped)" /* RCS information: $Id: myshell.c,v 1.2 2006/04/05 22:46:33 elm Exp $ */ #include <stdio.h> #include <unistd.h>... (1 Reply)
Discussion started by: rosecomp
1 Replies

6. Shell Programming and Scripting

PCC-F-NOERRFILE, unable to open error message file

Hi, I was compiling few C programs in the unix server and getting the following error message rm: /home/a0xxx28/AVT/SEEDLIBRARYDB/LIB/*.a non-existent proc MODE=ANSI CODE=ANSI_C INCLUDE=/home/a0xxx28/PVT/SEEDLIBRARYDB/INCLUDE INCLUDE=/home/a0xxx28/PVT/SEEDLIBRARY/INCLUDE ... (1 Reply)
Discussion started by: kavithakuttyk
1 Replies

7. UNIX for Dummies Questions & Answers

File already exists error while using '>' operator

hi i am using the below code grep -v '^$' file1.lst >file1.lst but it gives file1.lst already exists. And i want to over rite on the same file Whats the work around? (5 Replies)
Discussion started by: jathin12
5 Replies

8. Solaris

Error Message: find: cannot open /: Stale NFS file handle

I am using the "find" command below and it respond with the error message " find: cannot open /: Stale NFS file handle" what does it mean? what can I do about it? Need advice, thanks. below are the command that I enter, the respond and the error message: root@ScripServer:/# find / -name... (1 Reply)
Discussion started by: ezsurf
1 Replies

9. Shell Programming and Scripting

Fishing out error message within a log file

Hi all, i have a log file that captures success or failure messges when i run a daily job. here is a sample of my log. 20060312 start successful successful failure failure 20060312 end i need to write a subroutine that opens up the log daily after my job completes to examine the log... (2 Replies)
Discussion started by: new2ss
2 Replies

10. UNIX for Advanced & Expert Users

PCC-F-NOERRFILE, unable to open error message file, facility PR2

I am trying to build a tuxedo server which in turn depends on several Pro*C programs. I am doing it on HP-UX system. It looks to me that the ORACLE_HOME is set properly. But I am getting error message when trying to build. PCC-F-NOERRFILE, unable to open error message file, facility PR2 exit... (1 Reply)
Discussion started by: asutoshch
1 Replies
Login or Register to Ask a Question