Saya memiliki pohon direktori dengan banyak file tar. Setiap file tar berisi banyak file lainnya. Saya ingin mencari melalui semua file tar untuk pola yang diberikan, dan mencetak path lengkap semua file dalam tar yang ditemukan.
Saya sampai sejauh ini:
find . -type f -name '*.tar' -exec tar tf {} \; | egrep '<pattern>'
Sekarang masalah saya adalah bahwa perintah di atas hanya mencetak nama file di dalam tar yang ditemukannya. Yaitu, output di atas adalah:
pattern.jpg
foundMe.txt
Saya ingin output berisi juga path lengkap dan nama tar tempat file ditemukan. Bagaimana saya melakukan ini?
Terima kasih!
find
mengembalikan path lengkap relatif ke mana saya mengeksekusi perintah secara default.execdir
? Lihat pertanyaan ini .Jawaban:
Tentu saja, kehilangan alur di suatu tempat di sepanjang garis
:$
Saya punya masalah yang sama dengan file jar, mencari kelas java. Digunakan untuk melakukan sesuatu seperti ini: ambil output masing-masing
tar tf|grep <pattern>
kemudian lihat apakah output mengandung nilai - jika demikian, cetak nama ($f
) dan nilai ($p
):Beralih urutan argumen temukan - lebih murah untuk melihat nama file sebelum jenis file.
sumber