Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I want to search for some file(class) in zips(jars). How to do it from command line?

share|improve this question

4 Answers 4

up vote 4 down vote accepted

You can use "unzip -l zip-file-name.zip" to list the contents of the zip file, pipe its output to grep and then use grep to check if the list contains the file you are looking for.

unzip -l file.zip|grep file.class
share|improve this answer

You can find if a class is present in any file from command line with:

grep {search_for} {files}

{files} can have wildcards (ie. *.zip for zipfiles). Add -R behind grep if you want to search for zipfiles in subdirectories.

(command line: man grep for more information).

In case you want to find regular expression have a look at zgrep (command line: man zgrep for more information).

This does not show the lines; it just registers if it is present in the files you checked.

share|improve this answer
    
Using grep on a binary/compressed file only works by chance. Zip files apparently have a directory of the contained files, so it seems to work for zip files. grep also searches for basic regular expressions (fgrep searches for plain text). zgrep searches for basic regular expressions in compressed/gzip'ed files. –  elmicha May 11 '11 at 17:26
    
elmicha is right, neither grep nor zgrep will work. –  loevborg May 11 '11 at 19:31
jar -tf foobar.jar foo/bar/Foobar.class
share|improve this answer

I think that the proper answer would be: use zgrep instead of grep.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.