LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   Find a file in directories without using find command (https://www.linuxquestions.org/questions/linux-newbie-8/find-a-file-in-directories-without-using-find-command-823978/)

sikanders 08-03-2010 07:59 PM

Find a file in directories without using find command
 
Hi All,

I am new to linux and trying to find a file in sub directories using find command as:

find . -name *.jpg -type f

But I am unable to get the result as find command is not permitted by the server administrator.

Is there any way to find files without using find command. Kindly help........!!!

Thanks

kaz2100 08-03-2010 08:11 PM

Hya,

I am not quite sure what is your purpose, however,
Code:

du -h
can seek into subdirectories.

Happy Penguins!

GrapefruiTgirl 08-03-2010 08:14 PM

Code:

ls -R | grep \.jpg
ls has the -R switch (recursive)

EDIT:

I should have thought further ahead on that. As written, it will show you the files, but not where they're located (i.e. full path). The below is better:
Code:

for i in $(ls -R | grep \.jpg); do echo "$(readlink -f "$i")"; done
EDIT 2: This still isn't that useful - it omits the directory tree below the $PWD :/

frankbell 08-03-2010 08:43 PM

Another thing to try:

whereis [filename]

Wildcards work in the filename, but, if your rights are sufficiently limited, it may not produce the desired results.

GrapefruiTgirl 08-03-2010 08:50 PM

Gahh!! I'm having a brainless evening here.. My earlier suggestions didn't work well; I tried frankbell's suggestion of `whereis`, and also `which`, but those didn't work. Finally I tried using `locate` and that worked :) -- but like frankbell mentioned, `locate` will also not work right if you lack permissions.

Here's an example of something that works, provided you have the permissions:
Code:

sasha@reactor: for i in $(ls -R | grep Argentine); do locate "$i"; done
/home/sasha/Reptile_&_Snake/MISC_other_docs/Argentine_boas.info
/home/sasha/Reptile_&_Snake/snakies_pictures/Occidentalis/B.c.occidentalis.Argentine.2.jpg
/home/sasha/Reptile_&_Snake/snakies_pictures/Occidentalis/B.c.occidentalis.Argentine.3.jpg
/home/sasha/Reptile_&_Snake/snakies_pictures/Occidentalis/B.c.occidentalis.Argentine.jpg
sasha@reactor:

Phew :confused: -- time for sleep I think.

Telengard 08-03-2010 08:56 PM

Quote:

Originally Posted by sikanders (Post 4054787)
find command is not permitted by the server administrator.

What about the locate command?

Edit

I was too late with this :P

GrapefruiTgirl 08-03-2010 08:58 PM

Quote:

Originally Posted by Telengard (Post 4054843)
What about the locate command?

Good grief :confused: -- look at all the needless crap I've got wrapped around my `locate` command! Works great without all that junk :D

LMAO :/

Didn't I say it's bedtime?! Hehehe..

P.S. - Is this what they call "cannot see the forest for the trees" ? Or have I got the trees and the forest mixed up?

ghostdog74 08-03-2010 09:01 PM

if your admin disables find, most probably tools like locate, whereis etc are also disabled ( except if admin only knows about find which i doubt). Then you can just use the shell. (bash, ksh etc)

See here for example

By the way, if there is a policy to restrict commands, why are circumventing it ? If you really need to find your files, then ask your admin to show you how.

Telengard 08-03-2010 09:06 PM

Quote:

Originally Posted by ghostdog74 (Post 4054849)

That looks like the most promising solution so far. I do think du -h would probably work though, unless the admin was very thorough.

GrapefruiTgirl 08-03-2010 09:08 PM

I agree - and clicked "helpful" accordingly. Now I'll just go back to searching the forest for trees.

sikanders 08-04-2010 09:35 PM

Hi All...

Thanks for replying! It helped me a lot in other problems also, but if I want to get the list of all the ".jpg" files then how shoul I proceed, as there are number of sub directories....!!

ghostdog74 08-04-2010 09:40 PM

Quote:

Originally Posted by sikanders (Post 4056216)
Hi All...

Thanks for replying! It helped me a lot in other problems also, but if I want to get the list of all the ".jpg" files then how shoul I proceed, as there are number of sub directories....!!

show what you have done so far.

sikanders 08-04-2010 11:20 PM

I just tried du -h then it showed the file size and listed all the directories, but I need to find out all the ".jpg" images existing in different sub folders and copy them to a single folder at one place... Kindly help me in this!

sikanders 08-05-2010 12:15 AM

Here's an example of something that works, provided you have the permissions:
[code]
sasha@reactor: for i in $(ls -R | grep Argentine); do locate "$i"; done



Hey.......!!! Thanks a lot it helped me.....:cool:

Using this I found all my .jpg files as:

for i in $(ls -R); do locate "*.jpg" /absolute/path/to/parent/directory; done

Also can you please help me again.......I want to find path to "sik" directory or file wherever existing in sub directories.

Thanks

frankbell 08-06-2010 08:47 PM

Thanks for the locate command. That's new one to me. I'm looking forward to trying it.

Aside: The downside of choice is that there are sooooo many choices.


All times are GMT -5. The time now is 09:55 PM.