根据 tar 文件名将文件解压到目标目录

根据 tar 文件名将文件解压到目标目录

我有一个名为 的 tar 文件_home_rock_files.tar,该文件已在源服务器中打包,现在,一旦将此 tar 复制到目标服务器,我就拥有与 相同的目录结构_home_rock_files。现在,我的问题出现了。

我想编写一个 shell 脚本,自动解压_home_rock_files.tar并将档案解压到/home/rock/files/;目标路径在文件名中指定,如下所示。

答案1

我想出了以下一组 bash 命令:

[sudo] find * -type f -name "SPECIFY THE FILE NAME"| 
    while read FILE ; do       # read the files
        destpath="$(echo "$FILE"| sed 's/_/\//g;s/.tar//')"; #rerplace all _s with /s and drop the .tar ext to achive destpath
        mkdir -p "$destpath";  #create the directory path of despath  
        tar xzf "$FILE" -C "$destpath" ;  #untar the file to destpath
    done

相关内容