tar 给定路径的文件夹并将其存储在另一个文件夹中

tar 给定路径的文件夹并将其存储在另一个文件夹中

我正在尝试完成一个小 bash 项目,但在尝试 tar 给定路径的文件夹时卡住了。例如,程序接收路线/home/folderx。然后,它使用循环查找该目录内的每个文件夹for i in ~/folderx/*; do...。问题是:我尝试使用 来压缩该路径内的每个文件夹tar -czvf $i.tgz $i -P,但它压缩了提供给程序的整个路径。最后,我获得了一个.tgz具有正确名称的文件(我想要压缩的目录的名称),但其中不/home/folderx/name_of_the_folder/contents只是name_of_the_folder内容。

有什么问题?非常感谢。

答案1

您需要位于需要执行 tar 操作的目录中。

for i in ~/folderx/*; do...循环中做

cd $i
tar -czvf $i.tgz . -P
cd -

这对我有用。

答案2

首先创建存档文件,然后运行命令。

例如:

destination__folder = "name_of_folder.tgz"

tar czvf $path/to/destination_folder $i

上面的示例$i是您已在脚本中使用的示例。

相关内容