Unzip file individual dari banyak file zip dan ekstrak file individual tersebut ke direktori home

1

Saya ingin mengekstrak file individual. File-file ini memiliki ekstensi .txt. File-file ini juga hidup dalam beberapa file zip. Ini adalah perintah yang saya coba gunakan.

unzip -jn /path/to/zipped/files/zipArchiveFile2011\*.zip /path/to/specific/individual/files/myfiles2011*.txt -d /path/to/home/directory/for/extract/

Dari pemahaman saya, opsi -j mengecualikan direktori dan hanya akan mengekstrak file txt Opsi -n tidak akan menimpa file jika sudah diekstraksi. Saya juga telah belajar bahwa garis miring ke depan /path/to/zipped/files/zipArchiveFile2011\*.zipdiperlukan untuk keluar dari karakter wildcard (*).

Berikut adalah contoh pesan kesalahan yang saya temui:

Archive: /path/to/zipped/files/zipArchiveFile20110808.zip caution: filename not matched: /path/to/specific/individual/files/myfiles20110807.txt caution: filename not matched: /path/to/specific/individual/files/myfiles20110808.txt Archive: /path/to/zipped/files/zipArchiveFile20110809.zip caution: filename not matched: /path/to/specific/individual/files/myfiles20110810.txt caution: filename not matched: /path/to/specific/individual/files/myfiles20110809.txt

Saya merasa bahwa saya kehilangan sesuatu yang sangat sederhana. Saya sudah mencoba menggunakan tanda kutip tunggal (') dan tanda kutip ganda (") di sekitar jalur direktori. Tetapi tidak berhasil.

fixer1234
sumber
1
Sederhanakan masalah Anda untuk mengekstraksi dari 1 file yang berfungsi, yaitu menghapus bintang di yang pertama, menggantinya dengan jalur yang memenuhi syarat / ke / UniqFileName DAN kemudian mengutip semua karakter * yang tersisa seperti yang Andaindikasikan ( \*). Anda ingin mengekstraksi 1 atau lebih file yang cocok dengan pola kedua ... / individual / file / ... dari arsip, kan? Ketika Anda memahami cara kerjanya, maka Anda dapat mengetahui cara menggunakan shell wildcard untuk membuat daftar file yang unzip akan memproses semuanya sekaligus
shellter

Jawaban:

2

Untuk perintah unzip dengan ekspresi rentang dalam nama file, kita perlu melarikan diri baik format rentang dan wildcard dalam nama file target, misalnya untuk unzip file dengan ekstensi txt di order0710.zip, ... order0715.zip ke folder txt_pool, kita harus mengeluarkan perintah seperti ini:

unzip -jn order071\[0-5].zip \*.txt -d txt_pool
Scott Chu
sumber
1

Saya pikir Anda juga harus mengutip *dalam daftar file. Perintah tersebut akan terlihat seperti itu:

unzip -jn /path/to/zipped/files/zipArchiveFile2011\*.zip
      /path/to/specific/individual/files/myfiles2011\*.txt 
      -d /path/to/home/directory/for/extract/

Jika tidak mengutip *bash kedua, ekspansi dan letakkan nama file. Anda dapat memeriksa nilai yang diteruskan ke perintah dengan menggunakan echo:

echo /path/to/specific/individual/files/myfiles2011*.txt
Lukasz Stelmach
sumber
0

Apakah Anda mencoba WinRar?

Cukup buat file batch bernama unrar.bat

c: md \ unrar cd \ unrar "C: \ Program Files (x86) \ WinRAR \ unrar.exe" e% 1 mulai c: \ unrar

Sekarang klik kanan file zip. Dan pilih Buka dengan ... Jelajahi unrar.bat itu

Saya harap Anda melihat idenya.

PS: Anda dapat membuat shotcut di taskbar / quicklaunch dan kemudian seret file ke ikon file .bat -bukannya mengklik kanan ...

Jika Anda tidak melihat direktori, cari di bagian akhir dengan mask * .txt. Semua file txt akan terdaftar, sekarang Anda dapat dengan mudah memilih / memotong / menempelkannya.

Nime Cloud
sumber
1
Hanya kepala, dia menggunakan RedHat / Unix (karenanya tag), bukan Windows. :)
Kruug