bash - TAR 覆盖目录的内容
问题描述
我对 tar 命令的理解是,如果文件存在,它将覆盖文件的内容。否则它将保持存在。
[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
我不明白为什么 tar 正在替换 /etc/init.d 的全部内容
任何输入都会有帮助吗?
谢谢 !
解决方案
我相信这/etc/init.d
是一个链接/etc/rc.d/init.d
。
当您解压缩该文件时,它会用目录覆盖链接。您的所有文件仍在/etc/rc.d/init.d
.
要解决您的情况,请删除/etc/init.d
,重新链接它,然后将 a 添加h
到 tar 命令:
rm -rf /etc/init.d
cd /etc
ln -s ./rc.d/init.d
cd /
tar xhf /tmp/env_pkg_1.tar
推荐阅读
- input - 它显示系统指标的“无法解析/无效的布尔值”错误
- javascript - 错误 AttributeError:“NoneType”对象没有属性“内核”
- twitter-bootstrap - 是否可以在 Twilio Studio 中跟踪和同步来自收集输入小部件的数据到数据库文件(如 google 电子表格或 JSON)?
- html - 如何将锚标记中的值传递给Django视图中的函数
- r - 计算R中字符串中英文单词的数量
- pandas - 从这个 Pandas 数据框中绘制 3D 数据的有效方法是什么?
- ringcentral - 将 RingCentral 应用程序推送到生产环境(传真)
- node.js - Safari 通知总是返回被拒绝
- powerbi - Power BI DAX 度量以在给定时间点按状态计算项目
- python - Tensorflow GPU 中是否有一种方法可以将不同的函数应用于张量的不同列?