Shell 发出tar文件以删除某些文件,并在具有相同结构的文件夹中仅rar所需的文件

Shell 发出tar文件以删除某些文件,并在具有相同结构的文件夹中仅rar所需的文件,shell,linux-kernel,Shell,Linux Kernel,嗨,我有如下要求 | |------酒吧/ |--file.pl |---FILE1.FILE2.FILE3.TXT |---FILE4.FILE5.FILE6.TXT | |---次曲面1/ ||--file1_file2.log ||--file2_file1.log | |---次曲面2/ |---image1_image2.log |---image2_image1.log 我正在使用以下命令 焦油cvzf棒/x.tar 我得到的结果如下 | |------酒吧/ |--file.pl

嗨,我有如下要求


|
|------酒吧/
|--file.pl
|---FILE1.FILE2.FILE3.TXT
|---FILE4.FILE5.FILE6.TXT
|
|---次曲面1/
||--file1_file2.log
||--file2_file1.log
|
|---次曲面2/
|---image1_image2.log
|---image2_image1.log

我正在使用以下命令

焦油cvzf棒/x.tar

我得到的结果如下

|
|------酒吧/
|--file.pl
|---FILE1.FILE2.FILE3.TXT
|---FILE4.FILE5.FILE6.TXT
|
|---次曲面1/
||--file1_file2.log
||--file2_file1.log
|
|---次曲面2/
|---image1_image2.log
|---image2_image1.log

但我希望输出如下所示:我希望排除.pl,我只希望x.x.x.TXT和.LOG为tar

|
|------酒吧/
|
|---FILE1.FILE2.FILE3.TXT
|---FILE4.FILE5.FILE6.TXT
|
|---次曲面1/
||--file1_file2.log
||--file2_file1.log
|
|---次曲面2/
|---image1_image2.log
|---image2_image1.log

提前谢谢。

试试看

从手册页:

--exclude=PATTERN
   exclude files, given as a PATTERN

请尝试
--exclude=*.pl
选项此选项可能会中断,因为其他一些文件可能具有其他扩展名。它将不关心其他文件,只查找“.log”和“.TXT”文件。你在pRAShANT测试过它吗?我的观点是,是的,它可能没有错(尽管我怀疑它是否有效),但它只提供有限的功能。如果,还有许多其他文件也存在,我不知道它们的扩展名。因此,如何处理这种情况。一个解决方法是,使用“find.!-name*.pl”查找文件,这将起作用,并提供除*.pl以外的所有其他文件。请首先阅读问题,他只需要“.log”和“.TXT”文件,他不关心其他文件,先生。这个命令在命令行中运行良好,而我在shell脚本中使用它时,它不工作,而且我收到错误。您可以发布错误消息吗。我想你的图案中一定有一些特殊的字符。您需要使用escape char“/”对其进行转义。
$ tar cvzf x.tar bar/ --exclude=*.pl
--exclude=PATTERN
   exclude files, given as a PATTERN