Batalkan file ke direktori tujuan berdasarkan nama file tar


2

Saya memiliki file tar yang bernama _home_rock_files.tartar di server sumber dan sekarang setelah saya menyalin tar ini ke server tujuan saya memiliki struktur direktori yang sama _home_rock_files. Sekarang, pertanyaan saya muncul di sini.

Saya ingin menulis skrip shell yang secara otomatis membuka _home_rock_files.tardan menguraikan arsip untuk /home/rock/files/; jalur tujuan ditentukan dalam nama file seperti ini.


sebenarnya _ tidak lain adalah /. Di sinilah script shell saya akan tahu ini harus di-untar di / home / rock / files /. I cant hardcode path semua adalah _home_rock_files.tar adalah petunjuk untuk folder tujuan untar, tar -xvf _home_rock_files.tar -C / home / rock / file bagaimana ini dapat dicapai.
shekhar

maksud Anda, Anda memiliki beberapa file, dan jika file itu dipanggil _home_rock_filesharus untar ke /home/rock/filesdan jika itu disebut _hi_there_zannaitu harus untar ke /hi/there/zanna?
Zanna

ya Anda mendapatkannya .. ini bukan file ini direktori ...
shekhar

Oh benar! Pertanyaan bagus, +1. Saya sedikit mengedit.
Zanna

Jawaban:


2

Saya datang dengan serangkaian perintah bash ini:

[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

hebat saya akan menyesuaikan sesuai dengan kebutuhan saya seperti di solaris -C akan merusak saya harus melalui itu ....
shekhar

Awalnya saya menguji pada kotak Ubuntu sekarang sama harus dibuang di kotak solaris ...
shekhar
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.