Friends, I had written a small script to delete files from deletefiles.txt file. However, I want to add one more piece to script, so as to check if the file(file abc) which was already deleted earlier exists in 'deletefiles.txt' file, script should comment out that "file abc doesnt exist". Can anyone suggest me on how to proceed. Below is the script
Last edited by Don Cragun; 07-28-2014 at 01:55 AM..
Reason: Add CODE tags.
Friends, I had written a small script to delete files from deletefiles.txt file. However, I want to add one more piece to script, so as to check if the file(file abc) which was already deleted earlier exists in 'deletefiles.txt' file, script should comment out that "file abc doesnt exist". Can anyone suggest me on how to proceed. Below is the script
What you want to do is not at all clear.
Are you saying that if there is a line in deletefiles.txt that is abc, that line should be ignored?
Are you saying that if there is any line that appears more than once in deletefiles.txt, all but one of them should be ignored?
How do you want to
Quote:
comment out that "file abc doesnt exist"
when that text never appears in your script? Are you saying that you want to hide all diagnostic messages produced by rm?
Is deletefiles.txt supposed to contain a list of regular files? Or are some lines in that file the names of directories that are to be removed after removing the entire file hierarchy rooted in that directory?
Why isn't your script checking whether or not you want to continue before you get into the loop? Wouldn't it make more sense to check that once at the beginning of your script rather than checking it once for very file that is to be processed?
Sorry for my question not being clear. Apologize for the confusion here, as my script requirement changed so we can skip all the questions in your comments.
When I ran the script for testing now, its actually displaying "Files Deleted" for every file deleted. However, I want my script to display "Files Deleted" only once after successful deletion of all files. Below is output I get now for every file deleted.
You can skip answering my questions if you want. I will assume that you now know exactly what to do to solve your problem.
If you would like my help in making your script do what you want, you need to answer my questions so I can figure out what you are trying to do. Since your requirements have changed, answer the questions I asked before with respect to your new requirements.
If you have changed your script to meet your new requirements, show us your new script (using CODE tags).
This User Gave Thanks to Don Cragun For This Post:
Are you saying that if there is a line in deletefiles.txt that is abc , that line should be ignored? - Earlier, I wanted my script to test the existence of my file before its deleted, however now I feel that isnt important so we can ignore this check.
Are you saying that if there is any line that appears more than once in deletefiles.txt , all but one of them should be ignored? - Again, as there are no two similar files to be deleted, we wouldnt have same line appearing more than once here. Also as each line is input manually in 'deletesfiles.txt' file we wouldnt expect having same line repetition.
How do you want to
Quote:
comment out that "file abc doesnt exist"
- As earlier my question was wrong, I do not require this step any more.
Why isn't your script checking whether or not you want to continue before you get into the loop? Wouldn't it make more sense to check that once at the beginning of your script rather than checking it once for very file that is to be processed? - My previous post :When I ran the script for testing now, its actually displaying "Files Deleted" for every file deleted. However, I want my script to display "Files Deleted" only once after successful deletion of all files. Below is output I get now for every file deleted. I guess the issue is related and my knowledge is limited here and require assistance with this step.
Nothing less, I have added timestamps to my existing script.
You didn't answer whether or not entries in deletefile.txt are supposed to be individual files or could be directories. I will assume that they can be either since you specified rm -rf.
You echo'ed Files Deleted, but using rm -f you have no idea whether or not the individual file or the directory and all of the files under it was removed. I removed the -f and captured diagnostics for files that couldn't be removed in your log file and added Files Deleted to the log file only if all of the files for that invocation of rm succeeded.
You did not have a loop around the evaluation of your response to the prompt asking if the user really wants to delete files. So, Invalid choice, choose again didn't make any sense to me. Therefore, I combined the no and unrecognized responses to just log the time when the script was called and note that the request was cancelled.
You use $LOGFILE, but never set it in your script. I set it to the base name of your script with .log appended.
You have a log file, but you didn't capture any indication that the requested actions completed successfully or failed. The log file now captures the argument given to rm, any diagnostics produced by rm, and a success indication if rm completed successfully for each invocation of rm.
If the user replies no (or any other answer that is not yes), you will only get that message in the log file once; not once per line in deletefiles.txt.
You also didn't say what OS or shell you're using. The following script was written and tested using the Korn shell, but will work with any shell that supports the basic syntax specified by the POSIX Standards:
If you run this in a directory where deletefiles.txt contains:
and the files file1 and file3 are existing regular files, but non-existent_file2 does not exist, then running this script produces a log file containing:
if you respond yes to the initial prompt.
Hi
My directory structure is as below.
dir1, dir2, dir3
I have the list of files to be deleted in the below path as below.
/staging/retain_for_2years/Cleanup/log $ ls -lrt
total 0
drwxr-xr-x 2 nobody nobody 256 Mar 01 16:15 01-MAR-2015_SPDBS2
drwxr-xr-x 2 root ... (2 Replies)
Hi,
I want to create a script.sh over my local server doing the following:
1- There are files are creating over a directory over my local server "DIR_1".
2- I need to SFTP transfer these files to another Host "HOST_1" by "USER_1"/ "PASS_1".
3- Then Delete the transferred files from my Local... (2 Replies)
Hi All,
I want to delete all core* files in below file system in Unix server.
File system: /usr/sap/P01/JC00/j2ee/cluster/server0
I want to setup a cron job every ten minutes to delete the core *files
Thanks
N Rao (2 Replies)
Hi,
I need a script to delete files older than 2 years or a year.
I have around hundreds of old files which needs to be deleted.
Could you please help. (2 Replies)
I am trying to FTP files to a Windows server through my Linux machine. I have setup the file transfer with no problems but am having problem deleting those files from the Linux box. My current non-working solution is below. Any ideas, anyone?? :wall: Please be gentle, I'm fairly new to this... (4 Replies)
Hi,
I want to delete files that are older than 60 days.... i need to execute the script in 7 differnt folders.... i can run the script in crontab to regularly check....
I am struck @ finding out how the file is 60 days old or not...
Can u please help me on this?
Thanks,
NithZ (6 Replies)
I have a local linux machine in which the files are dumped by a remote ubuntu server. If the process in remote server has any problem then empty files are created in local machine. Is there any way using perl script to check if the empty files are being created and delete them and then run a shell... (2 Replies)
I have 1000 directories named: 0 - 999 which should contain 1000 files named 0 - 999. But some of these directories contain file whose names are greater than 999 and I need to delete those. I wrote the script below but that doesnt work. Any ideas?
#!/bin/bash
DIRS=999
for (( j = 0 ; j <... (3 Replies)
hi guys,
i need a script to delete files that have core in their name ...it might be part of the file name or as a .core extension ...any file that has core as its extension....
i am only able to delete files which just have thier name as core
using this :
find $1 -type f -name "core"... (12 Replies)