你的位置:首页 > 互联网IT

linux文件复制代码.sh,linux从一个文件夹复制在另外一个文件夹内.sh,复制文件,复制代码,复制命令

系统:linux

软件:.sh

功能:linux文件复制代码.sh

下载地址:


项目地址:


QQ20250705-010256.jpg linux文件复制代码.sh,linux从一个文件夹复制在另外一个文件夹内.sh,复制文件,复制代码,复制命令 互联网IT

新建:fz.sh

内容如下

#!/bin/bash

# 复制A文件夹中的内容到B文件夹中

/bin/cp -rf /root/hosts/hosts /etc/

# 显示执行完成的信息

echo "脚本执行完成!"


宝塔面板添加自动运行


---------------------------------------------


linux文件复制代码.sh,linux从一个文件夹复制在另外一个文件夹内.sh



永久修改docker中hosts文件方法,Docker容器如何修改hosts


为什么直接在Docker容器内修改hosts文件,不推荐?

hosts文件其实并不是存储在Docker镜像中的,/etc/hosts, /etc/resolv.conf和/etc/hostname,是存在主机上的/var/lib/docker/containers/(docker_id)目录下,容器启动时是通过mount将这些文件挂载到容器内部的。因此如果在容器中修改这些文件,修改部分不会存在于容器的top layer,而是直接写入这3个文件中。容器重启后修改内容不存在的原因是Docker每次创建新容器时,会根据当前docker0下的所有节点的IP信息重新建立hosts文件。也就是说,你的修改会被Docker给自动覆盖掉。


如何高效的为Docker容器设置hosts?



解决方案

方法1:强制覆盖(推荐)

使用\绕过别名或直接指定完整路径:




# 方案A:禁用别名

\cp -rf /var/lib/docker/containers/hosts /var/lib/docker/containers/564022d1e3db34f1f6289a0b280e48fb1beb38232046bdff39127b0851104b40/


# 方案B:使用绝对路径

/bin/cp -rf /var/lib/docker/containers/hosts /var/lib/docker/containers/564022d1e3db34f1f6289a0b280e48fb1beb38232046bdff39127b0851104b40/

此方法直接跳过交互确认36。


方法2:使用Docker原生命令

更安全的做法是通过docker cp命令操作:


bash

Copy Code

# 宿主机文件复制到容器

docker cp /var/lib/docker/containers/hosts 564022d1e3db34f1f6289a0b280e48fb1beb38232046bdff39127b0851104b40:/hosts

此方式能保持文件属性和容器一致性12。


方法3:临时取消别名

若需频繁操作,可临时取消别名:



unalias cp  # 临时生效

cp -rf /var/lib/docker/containers/hosts /var/lib/docker/containers/564022d1e3db34f1f6289a0b280e48fb1beb38232046bdff39127b0851104b40/

注意事项

?操作前备份?

建议先备份目标文件:



cp -p /var/lib/docker/containers/564022d1e3db34f1f6289a0b280e48fb1beb38232046bdff39127b0851104b40/hosts ~/hosts_backup

?容器状态检查?

若容器正在运行,修改其文件可能导致异常。建议先停止容器:



docker stop 564022d1e3db34f1f6289a0b280e48fb1beb38232046bdff39127b0851104b40

?权限问题?

若报权限错误,需使用sudo提权或检查Docker服务状态68。



参考来源:


  • 发表评论
  • 查看评论
【暂无评论!】

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。