加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

如果您想要其他内容,请编辑您的问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读