linux – 通过排除其父文件夹为多个目录创建单个tar文件
发布时间:2020-12-13 16:56:39 所属栏目:Linux 来源:网络整理
导读:我正在开发一个bash shell脚本,它通过将其父文件夹排除到所有目录并且还排除指定的文件夹来为多个文件夹创建tar文件. 目录结构是: $ls dir1dir11 testdir$ls dir2dir12 testdir2$ls dir3dir13 testdir3$tar -cvf file1.tar dir1 dir2 dir3 --exclude="test*
我正在开发一个bash
shell脚本,它通过将其父文件夹排除到所有目录并且还排除指定的文件夹来为多个文件夹创建tar文件.
目录结构是: $ls dir1 dir11 testdir $ls dir2 dir12 testdir2 $ls dir3 dir13 testdir3 $tar -cvf file1.tar dir1 dir2 dir3 --exclude="test*" 以上工作正常. 但我不想在tar中使用dir1,dir2和dir3文件夹.我只需要在文件和目录中. 所以我的最终焦油应该包含如下 $tar -tvf file1.tar dir11 dir12 dir13 任何人都可以帮我解决这个问题.提前致谢 解决方法
如果我理解正确的问题,您可以使用-C(大写C =更改目录)选项,例如:
tar cvf /tmp/some.tar -C /path/to/dir1 . -C /path/to/dir2 . #multiple -C allowed 检查一下 tar cf - -C /path/to/dir1 . -C /path/to/dir2 . | tar tvf - 例: 创建一个测试用例 cd /tmp mkdir test cd test mkdir -p {dir{1..3},testdir} touch dir1/file{1..3} dir2/file{4..6} dir3/file{7..9} 树现在是: $find . -print . ./dir1 ./dir1/file1 ./dir1/file2 ./dir1/file3 ./dir2 ./dir2/file4 ./dir2/file5 ./dir2/file6 ./dir3 ./dir3/file7 ./dir3/file8 ./dir3/file9 ./testdir 焦油: tar cf - -C dir1 . -C ../dir2 . -C ../dir3 . | tar tvf - tar内容是: drwxr-xr-x 0 jm staff 0 14 aug 13:07 ./ -rw-r--r-- 0 jm staff 0 14 aug 13:07 ./file1 -rw-r--r-- 0 jm staff 0 14 aug 13:07 ./file2 -rw-r--r-- 0 jm staff 0 14 aug 13:07 ./file3 drwxr-xr-x 0 jm staff 0 14 aug 13:08 ./ -rw-r--r-- 0 jm staff 0 14 aug 13:10 ./file4 -rw-r--r-- 0 jm staff 0 14 aug 13:10 ./file5 -rw-r--r-- 0 jm staff 0 14 aug 13:10 ./file6 drwxr-xr-x 0 jm staff 0 14 aug 13:08 ./ -rw-r--r-- 0 jm staff 0 14 aug 13:10 ./file7 -rw-r--r-- 0 jm staff 0 14 aug 13:10 ./file8 -rw-r--r-- 0 jm staff 0 14 aug 13:10 ./file9 如果您想要其他内容,请编辑您的问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |