macOS打的tar包中出现隐藏文件
起因
搭服务器的时候一开始选用了Amazon Linux 2,但是发现了只能安装postgresql-11的问题,因为本地开发环境是12,所以会存在一些的函数postgresql-11不支持。所以改用了Ubuntu20.04
需要将本地的代码上传服务器,我是在mac-book-pro上开发的,就用了tar -zcvf打包上传。
在ubuntu上解压后发现目录下多了 ._
和 .DS_Store
两种隐藏文件(linux下.
开头的文件就是隐藏文件)
因为我的Dockerfile里面写的是 ARG JAR_FILE=jar/*.jar
, 解压之后就会多了 ._*.jar
的文件,那docker build的时候就会报错了。
解决办法
1. 在ubuntu上处理
在解压后的根目录下执行:find . -type f -name '._*' -delete
find . -type f -name '.DS_Store*' -delete
删除这两种隐藏文件
2. 在mac上处理
export COPYFILE_DISABLE=true
在执行tar命令打包就可以
结语
我在使用Amazon Linux 2时貌似没有发现这个问题,不清楚是不是因为内核或者没有显示隐藏文件的原因。
不过,这些隐藏文件只是mac系统用来记录文件信息的,删除并不会产生影响。
参考
Comments