Issue
My understanding of tar command that it will override the content of the file if file exist. Otherwise it would keep as existing.
[root@something~]# ls -al /etc/init.d/
total XX
drwxr-xr-x. 2 root root 83 Jun 14 2018 .
drwxr-xr-x. 10 root root 127 Jun 6 2017 ..
-rwxr-xr-x. 1 root root 7293 Jan 2 2018 network
-rw-r--r--. 1 root root 1160 Feb 20 2018 README
[root@something~]# tar tvf /tmp/env_pkg_1.tar
drwxr-xr-x staff 0 2020-05-29 19:42 etc/
drwxr-xr-x user/staff 0 2020-05-29 18:04 etc/init.d/
-rw-r--r-- user/staff 3383 2020-05-29 18:04 etc/init.d/sshd
[root@something~]# cd /
[root@something /]# tar xf /tmp/env_pkg_1.tar
[root@something/]# ls -al /etc/init.d/
total 16
drwxr-xr-x 2 XXXXXX XXXXXX 18 May 29 18:04 .
drwxr-xr-x. 85 XXXXXX XXXXXX 8192 May 29 19:42 ..
-rw-r--r-- 1 XXXXXX XXXXXX 3383 May 29 18:04 sshd
I am not understand why tar is replacing the entire contents of /etc/init.d
Any inputs would be helpful ?
Solution
I belive that /etc/init.d
is a link to /etc/rc.d/init.d
.
When you untarred that file, it overwrote the link with a directory. All of your files are still in /etc/rc.d/init.d
.
To fix your situation, remove /etc/init.d
, relink it, and add a h
to the tar command:
rm -rf /etc/init.d
cd /etc
ln -s ./rc.d/init.d
cd /
tar xhf /tmp/env_pkg_1.tar
Answered By - Jack Answer Checked By - Candace Johnson (WPSolving Volunteer)