Greetings all,

For a file that is open, but deleted, is there a way to create a new
filename for it given either the file descriptor from the process or
the inode?

Thus far, my Google searches suggest the answer is "no".  But I find
that hard to believe.

In the example below, I would like to create a new filename for
/tmp/zfoo.txt, which I have deleted.  I have the original filename,
the inode, and the file descriptor from the process.  In fact, I can
even create a copy using 'tail'.  I was just wondering if I could
create a new filename with that inode number.

$ { while : ; do date ; sleep 1 ; done > /tmp/zfoo.txt ; } &
[1] 29573

$ pid=$(jobs -p)

$ ls -la /tmp/zfoo.txt
-rw-rw-r-- 1 rwcitek rwcitek 29 Nov 13 01:16 /tmp/zfoo.txt

$ ls -i /tmp/zfoo.txt
573463 /tmp/zfoo.txt

$ sleep 5

$ head -3 /tmp/zfoo.txt | cat -n
     1    Thu Nov 13 01:16:31 EST 2014
     2    Thu Nov 13 01:16:32 EST 2014
     3    Thu Nov 13 01:16:33 EST 2014

$ tail -3 /tmp/zfoo.txt | cat -n ; sleep 2 ; echo ; tail -3
/tmp/zfoo.txt | cat -n
     1    Thu Nov 13 01:16:33 EST 2014
     2    Thu Nov 13 01:16:34 EST 2014
     3    Thu Nov 13 01:16:35 EST 2014

     1    Thu Nov 13 01:16:35 EST 2014
     2    Thu Nov 13 01:16:36 EST 2014
     3    Thu Nov 13 01:16:37 EST 2014

$ lsof /tmp/zfoo.txt
COMMAND   PID    USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
bash    29573 rwcitek    1w   REG  202,2      232 573463 /tmp/zfoo.txt

$ \rm /tmp/zfoo.txt

$ touch  /tmp/zfoo.txt

$ ls -la /tmp/zfoo.txt
-rw-rw-r-- 1 rwcitek rwcitek 0 Nov 13 01:16 /tmp/zfoo.txt

$ lsof /tmp/zfoo.txt

$ lsof +L1
COMMAND   PID    USER   FD   TYPE DEVICE SIZE/OFF NLINK   NODE NAME
bash    29573 rwcitek    1w   REG  202,2      232     0 573463
/tmp/zfoo.txt (deleted)
sleep   29604 rwcitek    1w   REG  202,2      232     0 573463
/tmp/zfoo.txt (deleted)

$ echo ${pid}
29573

$ head -3 /proc/${pid}/fd/1 | cat -n
     1    Thu Nov 13 01:16:31 EST 2014
     2    Thu Nov 13 01:16:32 EST 2014
     3    Thu Nov 13 01:16:33 EST 2014

$ tail -3 /proc/${pid}/fd/1 | cat -n
     1    Thu Nov 13 01:16:36 EST 2014
     2    Thu Nov 13 01:16:37 EST 2014
     3    Thu Nov 13 01:16:38 EST 2014

$ tail -n +1 -f /proc/${pid}/fd/1  > /tmp/zfoo.new.txt &

Regards,
- Robert

-- 
-- 
Central West End Linux Users Group (via Google Groups)
Main page: http://www.cwelug.org
To post: [email protected]
To subscribe: [email protected]
To unsubscribe: [email protected]
More options: http://groups.google.com/group/cwelug
--- 
You received this message because you are subscribed to the Google Groups 
"Central West End Linux Users Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to