This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Undo a shell script when input file is overwritten

Hi,

Is it possible to redo a shell script? I overwrote my files running a shell script

I ran nohup sh 1.sh
But my output file was same as the input file, so it overwrote my input file

Thank you

next-gen

Did you try ctrl-z?

ctrl+z will interrupt the running of the script. The script finished running

Question unclear, please elaborate.

If your question fits in one sentence you did not explain it enough

I ran a shell script using: nohup sh 1.sh But my output file was same as the input file, so it overwrote my input file. What should i do?

Changed the title to make it more specific, added the additional information provided in the comments to the original question, cleaned up comments, and moved comments to answer so you can mark them as accepted.

Thank you for your help. I don't have backup of file but i am still optimistic. I used zcat and gzip to merge and zip the files using : zcat file1.fastq.gz file2.fastq.gz | gzip -c > file1.fastq.gz

You could just do cat file1.fastq.gz file2.fastq.gz > merged.fastq.gz. There is no need to zcat/gzip again.

zcat already concatanates compressed files, there is no need for gzip in this command:

zcat file1.fastq.gz file2.fastq.gz > file1.fastq.gz

Ok, thanks. But my file1.gz is empty now

Sorry, did not pay attention. Use cat to concatenate:

cat file1.fastq.gz file2.fastq.gz > new.fastq.gz

Also do not write to a file with identical name as the input.

3 answers

  • restore input from backup
  • recompute input

there's not much else you can do... sooner or later, that happens to everybody

rm * .bam

Lol...don't want to delete more files

Your input file is gone. Unless you have a backup somewhere, there is no way to restore it or "redo" the script.

Pro tip: make sure your input files are read-only (chmod -w) to avoid loss of data.

You mean chmod -w, no?

As others have said, your data is long gone, unless:

  • You have the original input data, and can simply recompute it easily enough.
  • Your server/SysAdmin has configured regular snapshots, but this isn't that common, and would probably only get you to whereever you were yesterday.

There's no such thing as a recycle bin on Unix, so when you delete stuff - you really delete stuff.

Log in to answer this question.