Modifying a file without changing inode number


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Modifying a file without changing inode number
# 1  
Old 10-05-2010
Modifying a file without changing inode number

Hi all,
I am struggling to change the content of a file without changing the inode number. The exact issue is as below.

I have a file name test.bak which has 100 lines of text.
I am trying to to delete the first 90 lines of the text in the file.

I know that using sed/awk/head/tail I can delete the lines.
But the general procedure is as follows.

1. Use sed/awk/head/tail to delete the 90 lines in test.bak
2. Re-direct to a temporary file. (tmp.bak)
3. Move the temporary file (tmp.bak) to the original file name (test.bak).

When I move the temporary file to the original file,the inode number of the original file changes. I want to retain the inode number of the original file.
How can I do that?

I am using Solaris 10.


Please help.
# 2  
Old 10-05-2010
Rather than moving the file, cat the tmp file back onto the original file:

Code:
sed 's/foo/bar/' <ofile >tfile
cat tfile >ofile


Last edited by agama; 10-05-2010 at 09:36 PM.. Reason: typo
This User Gave Thanks to agama For This Post:
# 3  
Old 10-05-2010
Use ed:
Code:
printf '1,90d\nw\nq\n' | ed -s test.bak

... or, alternatively, with a heredoc ...
Code:
ed -s test.bak <<EOED
1,90d
w
q
EOED

Example:
Code:
$ jot 100 > data
$ ls -i data
5490111 data
$ wc -l data
     100 data
$ head data
1
2
3
4
5
6
7
8
9
10
$ printf '1,90d\nw\nq\n' | ed -s data
$ ls -i data
5490111 data
$ wc -l data
      10 data
$ head data
91
92
93
94
95
96
97
98
99
100

Regards,
Alister
This User Gave Thanks to alister For This Post:
# 4  
Old 10-05-2010
Modifying a file without changing inode number

Thank you very much.
This resolves my issue.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Linux

Inode number changes for a file in Redhat Linux

Hi, I have created a file a.txt in Redhat Linux. Inode number for a file changes every time i update the file using vi editor , gedit etc. Is there any setting that can be made , such that inode number never changes as that is supposed to be the expected behavior? Or if we cannot... (13 Replies)
Discussion started by: srirammanohar
13 Replies

2. Shell Programming and Scripting

Changing inode value of a hardlink

is it possible to change the inode value/ file path of a hard link? (2 Replies)
Discussion started by: fhill2
2 Replies

3. Solaris

Retreive deleted file name if you having inode number

Some one please help me to find deleted file name, if I am having inode number in Solaris without using any 3rd party tool. Thanks :) (3 Replies)
Discussion started by: aksijain
3 Replies

4. Red Hat

Inode number changes for a file in Redhat Linux

Hi, I have created a file abc.log in Redhat Linux. Inode number for a file get changes every time i update the file using vi editor. Is there any setting that can be made , such that inode number never gets changed? Or if we cannot restrict from inode number getting changed , is... (9 Replies)
Discussion started by: raghu.amilineni
9 Replies

5. Shell Programming and Scripting

changing a file when the inode modified time of the other file changes

i have a requirement where i needed to change variable values in a properties file(first file) whenever there is change to Release details file(second file). My question is do i have to create a daemon process that always checks the modified time/inode change of the second file and then change the... (1 Reply)
Discussion started by: saikiran_1984
1 Replies

6. Filesystems, Disks and Memory

Recreating a deleted hardlink to a file if I know the inode number

At risk of twisting the rules to nearly the point of breaking (if you think this goes too far mods, I apologise and accept that this should be deleted), I'm hoping someone might be able to cast a little light on the following problem regarding hard links to files. ... (6 Replies)
Discussion started by: Smiling Dragon
6 Replies

7. UNIX for Dummies Questions & Answers

Number of Inode on a disk

How we can know number of inode present in my Disk including free and occupied. Is there any tool or program to know how much free inode are there in inode free list . (2 Replies)
Discussion started by: mr_deb
2 Replies

8. UNIX for Advanced & Expert Users

how to find out pathname from inode number

Hi all when I execute pmap command on one of my daemon process, I am able to see the following output. Address Kbytes RSS Anon Locked Mode Mapped File 00010000 40 40 - - r-x-- irs026bmd 00028000 56 56 16 - rwx-- irs026bmd 00036000... (3 Replies)
Discussion started by: axes
3 Replies

9. Shell Programming and Scripting

Changing Line Number of a File

Example: O o x What I would like to do is to rename the first column of the above file without affecting the format. The output should look like the following: Output: O o x #! /bin/ksh cd $HOME/lib/.Lee #nl = no. of lines. nl=`grep 'X' ex | wc -l` #ln = line no. ln=1 (17 Replies)
Discussion started by: ilak1008
17 Replies

10. Filesystems, Disks and Memory

Inode number

as kernel keeps track of user activities on a file by its INODE number and I node table . what is the structure of Inode table. and where does this Inode table mapped into?user space or kernel space? is the Inode Number is fixed for a file till its deletion? thanks (1 Reply)
Discussion started by: compbug
1 Replies
Login or Register to Ask a Question