Sponsored Content
Top Forums UNIX for Dummies Questions & Answers BASH: Interactive "cp" (and "mv") in a loop Post 302504070 by SilversleevesX on Sunday 13th of March 2011 01:00:40 PM
Old 03-13-2011
BASH: Interactive "cp" (and "mv") in a loop

Hi.

I have a copy-file script (and a move-file script) that I recently tried to make interactive. I tested the former on three files from a text list, and watched to see what would happen. As the cp command was in a while/do/done loop, there was no pause for input: it wrote the file from the list to the destination directory. Casually-speaking, it "barreled right through" the list as if the -i wasn't there.

Here's part of the copy-file script.
Code:
#!/bin/bash

while read 'line';
do
n=$(echo $line)
file=${n%,*}
dest=${n#*,}
if [[ "$dest" == "" ]]; then continue; fi
echo -e "Copying $file now."
cp -ipPv $file $dest

done<copylist.txt

I know the 'pPv' options are more or less unnecessary, particularly the capital 'P', but as I write and use many of my scripts both in Cygwin and GNOME, it seems more prudent to me to include them.

In a loop such as this, would I be better off preventing overwrite (and changes of mod date, file-length, etc to the file that ended up at the destination) to write in an if/then/fi that checked for the file in the destination before copying? Something like this?
Code:
if [ -e "$dest/$file" ]; then
echo -e "Do you want to overwrite $file? (y/n)"
read arPLy
if [[ "$arPLy" != "n" ]]; then
cp -pPv $file $dest
else
continue
fi
fi

Or is there a way to introduce (I hesitate to say "force") a pause in that loop at the "cp -i" stage?

Hope someone can help and soon.

BZT
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies

2. Shell Programming and Scripting

cat $como_file | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g'

hi All, cat file_name | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g' Can this be done by using sed or awk alone (4 Replies)
Discussion started by: harshakusam
4 Replies

3. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

4. Shell Programming and Scripting

how to use "cut" or "awk" or "sed" to remove a string

logs: "/home/abc/public_html/index.php" "/home/abc/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" how to use "cut" or "awk" or "sed" to get the following result: abc abc xyz xyz xyz (8 Replies)
Discussion started by: timmywong
8 Replies

5. Solaris

The slices "usr", "opt", "tmp" disappeared!!! Help please.

The system don't boot. on the screen appears following: press enter to maintenance (or type CTRL-D to continue)...I checked with format command. ... the slices "0-root","1-swap","2-backup" exist. ...the slises "3-var","6-usr" -unassigned. :( (16 Replies)
Discussion started by: wolfgang
16 Replies

6. UNIX for Dummies Questions & Answers

"Help with bash script" - "License Server and Patch Updates"

Hi All, I'm completely new to bash scripting and still learning my way through albeit vey slowly. I need to know where to insert my server names', my ip address numbers through out the script alas to no avail. I'm also searching on how to save .sh (bash shell) script properly.... (25 Replies)
Discussion started by: profileuser
25 Replies

7. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

8. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

9. AIX

Apache 2.4 directory cannot display "Last modified" "Size" "Description"

Hi 2 all, i have had AIX 7.2 :/# /usr/IBMAHS/bin/apachectl -v Server version: Apache/2.4.12 (Unix) Server built: May 25 2015 04:58:27 :/#:/# /usr/IBMAHS/bin/apachectl -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_worker_module (static) ... (3 Replies)
Discussion started by: penchev
3 Replies
starpkg(1)						      General Commands Manual							starpkg(1)

NAME
starpkg - convert a StarPlot data set to StarPlot file format SYNOPSIS
starpkg [ --dataset ] data-set [ --dest destination ] starpkg --recurse input-dir [ --dest destination ] DESCRIPTION
On the StarPlot web site are available some packages of data that include both an original data file from NASA, and also a specification file. These packages are referred to as "data sets", from which starconvert(1) can produce a data file in StarPlot format. For ease of use, this should be done via the starpkg shell script. USAGE
Assuming that data-set is a valid StarPlot data set (either in tar.gz format or a directory resulting from uncompressing the tar.gz file), the `starpkg --dataset' command converts it to a StarPlot-formatted data file. Note that the `--dataset' flag is optional, and the name of the input data set may be specified without it. In order to be a valid StarPlot data set, a directory or tar.gz file must contain at least a valid specification file whose name ends with `.spec' and a flat text data file named `catalog.dat'. If the `--dest' option is omitted, the default location of the output file is the first of the directories /usr/share/starplot, $PWD, $HOME in which the user has write permissions. If `--dest' is omitted or destination is a directory, the name of the output file will by default be ${specfilename%.spec}.stars. For instance, a data set containing gliese.3.spec will produce a file named gliese.3.stars. The `starpkg --recurse' form of the command executes the above action for every StarPlot data set contained in input-dir, placing the resulting StarPlot data files to the directory destination. (If the --dest option is omitted, the default destination directory is chosen as above.) This form of the starpkg command is most useful when a new version of StarPlot has been installed and you wish to regenerate all StarPlot data files from data sets using the new starconvert program. OPTIONS
--dataset, -s Specify a directory or tar.gz file to use as a StarPlot data set. --dest, -d Specify the file or directory in which to output StarPlot-format data files. --quiet, -q Print only fatal errors to the terminal. --recurse, -r Specify a directory in which to search for StarPlot data sets. --starconvert-option option Pass option through to starconvert. If you wish to pass more than one option (or an option that takes a following argument), you should give this flag multiple times, once for each starconvert option or argument. --verbose, -v Print all starconvert output to the terminal. SEE ALSO
starplot(1), starconvert(1) AUTHOR
Copyright (C) 2000-2002 under the GNU GPL by Kevin B. McCarty <starplot@starplot.org>. The StarPlot web page is at www.starplot.org. Nov 2002 starpkg(1)
All times are GMT -4. The time now is 12:51 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy