Here's the problem. I had a bunch of files in a directory. Then I created another directory in that directory. Then I cobbled together this command:
find . -maxdepth 1 -type f -exec mv {} ./1 \;
This command was supposed to take all the files in the directory and move them to that newly-created directory, but instead of providing the name of the directory, I screwed up and typed 1, as you can see from the code snippet. So, I ended up having just one text file named 1 that now contains the stuff from one of the disappeared files and that's all.
Is there any chance I could recover the lost files (or possibly the actual data from the files--they were all text files) or are they pretty much permanently gone?
Before:
misha@hp-laptop:~/Documents/prgmg/work$ ls
add.s bubble.s cpuid.s div.s hello.s mult.s sum.s test.s
a.out c demo.s gas.txt max.s print_arr.s test.c
misha@hp-laptop:~/Documents/prgmg/work$ mkdir asm
After:
misha@hp-laptop:~/Documents/prgmg/work$ ls
1 asm c
So, as you can see, I wanted to put all assembly language files into the asm
directory. And as things stand now, 1
is a text file and it contains the stuff from gas.txt
.
You have lost ALL but the last file offered up by
find
, it is now called./1
. Note thatfind
finds files in its own order, so "last" doesn't mean what you think. By inserting anecho
in front of themv
, we see: