web-dev-qa-db-fra.com

Décompressez les fichiers dans les répertoires de destination en fonction des noms de fichiers tar

J'ai un fichier tar nommé _home_rock_files.tar qui a été goudronné sur un serveur source et maintenant, une fois que j'ai copié ce tar sur le serveur de destination, j'ai la même structure de répertoires que _home_rock_files. Maintenant, ma question se pose ici.

Je veux écrire un script Shell qui dénouera automatiquement _home_rock_files.tar et décompresse l'archive vers /home/rock/files/; le chemin de destination est spécifié dans le nom de fichier comme ceci.

2
shekhar

Je suis venu avec cet ensemble de commandes 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
2
αғsнιη