bash脚本中的7z不会排除目录

用户名

我遇到了一种7z的奇怪行为(或者bash,我还不知道。)。使用以下脚本:

#!/bin/bash
find /home/user  -type f -name "*.pdf" | cut -c 10- > /home/user/exclude_list2.lst;
lst1=" -x@/home/user/exclude_list2.lst -xr!'*.config/*' -xr!'*.cache/*' "
command=$(/usr/bin/7z a $lst1 -v2048M arch0.7z /home/user);
$command

同样,最后两行可以很容易地用单行替换:

/usr/bin/7z a $lst1 -v2048M arch0.7z /home/user

我也尝试过:

command="/usr/bin/7z a  $lst1  -v2048M arch0.7z /home/dh ;"

我收到一个“ arch0.7z”文件,但是文件夹.config和.cache仍被包含,而:

#!/bin/bash
find /home/user  -type f -name "*.pdf" | cut -c 10- > /home/user/exclude_list2.lst;
/usr/bin/7z a -x@/home/user/exclude_list2.lst -xr!'*.config/*' -xr!'*.cache/*' -v2048M arch0.7z /home/user ;"

生成包含正确排除的文件夹的文件。

所以,我想知道,从变量展开的行和有什么区别:

/usr/bin/7z a $lst1 -v2048M arch0.7z /home/user

我输入的是:

 /usr/bin/7z a -x@/home/user/exclude_list2.lst -xr!'*.config/*' -xr!'*.cache/*' -v2048M arch0.7z /home/user

7z工作流程中是否有如此重大变化的任何原因?

斯文

您的原始表格

command=$(/usr/bin/7z a $lst1 -v2048M arch0.7z /home/user);
$command

表示$command包含7zip运行输出,因为var=$(...)会将命令的输出存储到变量中。

所以,

/usr/bin/7z a $lst1 -v2048M arch0.7z /home/user

不是替代品,而是脚本中的错误的更正。

无论如何,真正的问题。

如果在外壳程序中运行变量分配,则会注意到以下内容:

$ lst1=" -x@/home/user/exclude_list2.lst -xr!'*.config/*' -xr!'*.cache/*' "
-bash: !'*.config/*': event not found

因此,这行有一个错误,因为当使用双引号时,shell会进行变量替换等"..."有问题的项目是!,因为bash使用它来引用其历史记录中的先前命令。改用单引号:'...'

$ lst1=' -x@/home/user/exclude_list2.lst -xr!'*.config/*' -xr!'*.cache/*' '
$ echo $lst1
-x@/home/user/exclude_list2.lst -xr!*.config/* -xr!*.cache/*

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

bash脚本中的7z不会排除目录

来自分类Dev

bash脚本中的7z不会排除目录

来自分类Dev

bash脚本中的7z不会排除目录

来自分类Dev

7z不会从排除文件中排除目录

来自分类Dev

7z无法在腻子下的shell脚本中工作

来自分类Dev

如何使用7z归档目录中的所有文件和目录(包括隐藏的文件和目录)?

来自分类Dev

为当前目录中的每个目录创建单独的7z归档文件,并通过GNU Parallel进行并行化

来自分类Dev

将目录添加到7z存档

来自分类Dev

Bash脚本不会更改目录

来自分类Dev

zip / 7z / rar中的文件权限?

来自分类Dev

ShellExecuteEx 7z德尔福

来自分类Dev

Nautilus 7z压缩

来自分类Dev

7z存档包含与正则表达式匹配的目录

来自分类Dev

如何提取 7z zip 并拥有正确的目录结构?

来自分类Dev

在bash脚本中引用rsync的排除问题

来自分类Dev

在脚本中更改目录不会更改目录-为什么?

来自分类Dev

将我的密码以7-zip格式存储在加密的.7z / .zip中是否安全?

来自分类Dev

使用tar在我的备份脚本中“-排除”特定目录的位置

来自分类Dev

如何在此脚本中从tar中排除目录?

来自分类Dev

通过bash脚本更改目录而不会弄乱$ PATH

来自分类Dev

zip格式的7z“超”设置

来自分类Dev

zip格式的7z“超”设置

来自分类Dev

7z:-r标志“做什么”?

来自分类Dev

.7z文件格式的弹性如何?

来自分类Dev

如何获得7z参数值

来自分类Dev

Bash在脚本中找不到正确的目录

来自分类Dev

防止bash脚本中的目录遍历漏洞

来自分类Dev

使用bash脚本遍历目录中的文件

来自分类Dev

在bash脚本中拆分工作目录