在使用 tar 命令时,我们可能需要使用 --exclude 选项来排除某些文件或目录。通常,我们可以使用变量来传递排除列表,例如:
EXCLUDE_LIST="file1.txt file2.txt dir3"
tar --exclude={$EXCLUDE_LIST} -czvf archive.tar.gz /path/to/files
然而,上面的代码不会将 $EXCLUDE_LIST 变量值正确地传递给 --exclude 选项。解决方法是使用 eval 命令来强制执行变量替换,如下所示:
EXCLUDE_LIST="file1.txt file2.txt dir3"
eval tar --exclude={$EXCLUDE_LIST} -czvf archive.tar.gz /path/to/files
通过使用 eval 命令,tar 命令将会正常工作,并排除 $EXCLUDE_LIST 所列出的文件和目录。
下一篇:变量替换在if语句中