留在另一个文件夹,我如何从另一个目录tar特定文件?

时间:2014-10-20 10:16:43

标签: linux command compression redhat tar

感谢您的支持,

我的linux笔记本电脑上有以下文件夹结构

/home
     /A
     /B

在文件夹" B"中,我有* .csv,* .dat类型的文件。

现在从文件夹A,如何在文件夹B中创建包含文件* .csv的tar文件。我在文件夹A中运行命令

这是命令,我已经尝试但它不起作用,

在/ home / A文件夹中,我正在运行以下命令

tar -cf /home/A/Sample1.tar -C /home/B/ZSBSDP4 *.csv

也尝试了这个,

tar -cf /home/A/Sample1.tar -C /home/B/ZSBSDP4 --wildcards *.csv

对于这两个命令,我收到以下错误,

tar: *.csv: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors

在tar文件中,我不想包含整个文件夹结构,这就是原因,我使用选项-C(大写)

此外,以下命令有效,但它包含所有* .csv和* .dat文件。

tar -cf /home/A/Sample1.tar -C /home/B/ZSBSDP4 .

2 个答案:

答案 0 :(得分:2)

您可以在tar命令中编辑名称以删除路径。 (假设你有GNU tar。)

tar -cf /home/A/Sample1.tar --transform 's,.*/\([^/]*\),\1,' /home/B/ZSBSDP4/*.csv

请注意,如果在命令中指定了更多源目录,则可能会意外地在tar文件中放入多个具有相同名称的文件。然后在解包时,最后一个将覆盖那些与它之前具有相同名称的那些。

答案 1 :(得分:1)

您可以使用--exclude = PATTERN选项:

tar -cf /home/A/Sample1.tar -C /home/B/ZSBSDP4 . --exclude=*.dat

手册页中列出的其他“本地文件选择”选项:http://linux.die.net/man/1/tar