Visit The New, Modern Unix Linux Community

Full Discussion: recognizing * character
Top Forums Shell Programming and Scripting recognizing * character Post 89790 by mschwage on Tuesday 15th of November 2005 10:54:22 PM
Shell metacharacters

Quote:
Originally Posted by csejl
i have a short script that takes a filename and secure copies the file to a remote machine. i'd like to be able to take a * character and secure copy all the files in the directory.
It sounds to me like you're trying to do the work that the shell already does for you.

Say I cd to /tmp and do ls * . Say it comes back with
file1 file2 file3

Then I create a script in my home directory. Call it foo. Now I cd to /tmp, run the command foo, with * as an argument: ~/foo * . Note that the script "foo" is NOT given a * as an argument. Because what the shell does, before it even executes the command (which is my shell script), is to: Expand variables, Expand metacharacters, and Expand commands in backticks (or $( ...) in ksh ). So when I type
Code:
~/foo  *

, the shell does not run
Code:
~/foo  *

. It expands the *, and really runs
Code:
~/foo   file1 file2 file3

.

So what you're thinking of doing is actually
Code:
 scp  $@ user@ip:

I don't believe you need or want a directory in the "user@ip:" part of the scp because your files will by default be placed in the home directory of user over at your host given by ip.

Finally, I'm not sure of the syntax of the scp command with multiple files. Try doing two of them first, and see if it works. Remember that metacharacters aren't magic, they are pretty ignorant although powerful. What they do is serve as placeholders for a replacement. The shell does the replacing, then and only then does your script or command get the results of the replacement(s).
-mschwage
 
Test Your Knowledge in Computers #486
Difficulty: Medium
After a computer program is loaded and setup, the operating system begins executing the instructions at the program's end point in reverse byte-execution mode.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

recognizing *.* in find

hi folks, I am trying to write a script for deleting all the files which are older than "N" days from current directory. CODE: FileName="*.*" NumDays=-1 echo $FileName echo $NumDays find * -prune -name $FileName -mtime $NumDays -exec rm {} \; Now the problem here is when i... (3 Replies)
Discussion started by: amarnath
3 Replies

2. UNIX for Advanced & Expert Users

Crontab not recognizing the jar files

Hi All, I am using crontab which execute a shell script. In the shell script, I am executing a java program. This Java program requires the jar files. The cron job file ' cronfile.txt ' contents: MAILTO="raju_utla@dcis.uohyd.ernet.in" 0-59 * * * *... (0 Replies)
Discussion started by: rajuutla
0 Replies

3. UNIX for Dummies Questions & Answers

Crontab not recognizing the jar files

Hi All, I am using crontab which execute a shell script. In the shell script, I am executing a java program. This Java program requires the jar files. The cron job file ' cronfile.txt ' contents: MAILTO="raju_utla@dcis.uohyd.ernet.in" 0-59 * * * *... (4 Replies)
Discussion started by: rajuutla
4 Replies

4. Shell Programming and Scripting

Recognizing an argument in csh

I will be passing an argument to a csh script The script can be either of two forms For example, either script.csh zloc=5/10 or script.csh zloc=5/10/20 So there can be either two values or three values. How can I distinguish which one the user has inputted? I have made... (1 Reply)
Discussion started by: kristinu
1 Replies

5. Solaris

Solaris not recognizing RAID 5 disks

I've just installed Sol 10 Update 9 on a Sun 4140 server and have a RAID 1 configuration (2 136 Gb drives) for the OS and have created a RAID 5 array (6 136 GB) drives. When i log into the system I am unable to see the RAID 5 disks at all. I've tried using the devfsadm command but no luck and... (9 Replies)
Discussion started by: goose25
9 Replies

6. Shell Programming and Scripting

sed and recognizing a runtime parameter

I thought I posted this before, but cannot see the post, so will re-post. Apologies if it now appears twice ! My script prompts for a 7 digit parameter : read f1 I then run a find command to search for files with $f1 in its contents : find . -print | grep $f1 {file} > temp1 I then run a cut... (1 Reply)
Discussion started by: malts18
1 Replies

7. Solaris

Solaris 9 not recognizing CDROM drive

Hello, I've read many posts that offer tips on how to mount a CDROM but I haven't seen any on how to get the system to recognize the CDROM drive. I was transferring files from CDROM to the hard drive successfully. I entered the third CDROM and the system refused to automount it. I tried... (2 Replies)
Discussion started by: TrueSon
2 Replies

8. Red Hat

VMBox not Recognizing eth0 on RH.

Hello, I re-installed my laptop and installed a new copy of VMBOX, I created a VM Machine with my Rhel5 and a CEntos copy as well. I am using a laptop HP DV4, I use wireless on the laptop. Usually when I boot up in to either machine I would get eht0 and lo as usual now I just don't get... (4 Replies)
Discussion started by: NelsonC
4 Replies

9. Filesystems, Disks and Memory

Recognizing storage from server

Hi, I need to know what are the storages attached to some of our corporate servers. I run this command from the server only to get a list of WWNs : # /usr/local/bin/evainfo -a Devicefile Array WWNN Capacity ... (1 Reply)
Discussion started by: anaigini45
1 Replies

10. Shell Programming and Scripting

Script program is not recognizing the -w

Sorry I put -r I ment to out -w but its not perform none of -w, -r, -x flags Using centos 6.4 #!/bin/bash echo -e "enter the name of file :\c" read file_name if then if then echo "Type some text date. Tp quit press crtl-" cat >> $file_name ... (2 Replies)
Discussion started by: zbest1966
2 Replies
RCP(1)							    BSD General Commands Manual 						    RCP(1)

NAME
rcp -- remote file copy SYNOPSIS
rcp [-46p] source_file target_file rcp [-46pr] source_file ... target_directory DESCRIPTION
The rcp utility copies files between machines. Each source_file, target_file, or target_directory argument is either a remote file name of the form ``ruser@rhost:path'', or a local file name (containing no ':' characters, or a '/' before any ':'s). The following options are available: -4 Use IPv4 addresses only. -6 Use IPv6 addresses only. -p Cause rcp to attempt to preserve (duplicate) in its copies the modification times and modes of the source files, ignoring the umask(2). By default, the mode and owner of target_file are preserved if it already exists; otherwise the mode of the source file modified by the umask(2) on the destination host is used. -r If any of the source files are directories, rcp copies each subtree rooted at that name; in this case the destination must be a directory. If path is not a full path name, it is interpreted relative to the login directory of the specified user ruser on rhost, or your current user name if no other remote user name is specified. A path on a remote host may be quoted (using '', '"', or ''') so that the metacharacters are interpreted remotely. The rcp utility does not prompt for passwords; it performs remote execution via rsh(1), and requires the same authorization. The rcp utility handles third party copies, where neither source nor target files are on the current machine. SEE ALSO
cp(1), ftp(1), rlogin(1), rsh(1), hosts.equiv(5) HISTORY
The rcp command appeared in 4.2BSD. BUGS
Does not detect all cases where the target of a copy might be a file in cases where only a directory should be legal. Is confused by any output generated by commands in a .login, .profile, or .cshrc file on the remote host. The destination user and hostname may have to be specified as ``rhost.ruser'' when the destination machine is running the 4.2BSD version of rcp. BSD
October 16, 2002 BSD

Featured Tech Videos

All times are GMT -4. The time now is 10:41 PM.
Unix & Linux Forums Content Copyright 1993-2020. All Rights Reserved.
Privacy Policy