Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have a VPS with Suse Linux 10.3.

I've logged in via SSH/putty and am trying to find where my web files are located.

Since I'm uploading via FTP in a directory called httpdocs, I assume that this directory exists somewhere.

My google searches have taught me to do this, go to my root directory and type:

find httpdocs -type d

but it says "No such file or directory".

How can I find this directory?

share|improve this question

migrated from serverfault.com Aug 25 '11 at 2:31

This question came from our site for professional system and network administrators.

2  
In case someone's wondering, the command in the question finds all directories (-type d) in the directory entry httpdocs (relative to the current working directory, usually but not necessarily a directory). It fails with error message because there is no directory entry httpdocs in the system's root directory, and therefore no starting point for a search. –  Daniel Beck Dec 30 '11 at 12:56
add comment

4 Answers 4

up vote 192 down vote accepted

It is:

find / -type d -name 'httpdocs'

the first parameter "/" is where to look, in this case "/" it's the entire system.

-name could be -iname to ignore case

also -type is not mandatory

use : man find for more options

share|improve this answer
    
find / -name 'httpdocs' works great thanks –  Edward Tanguay Jun 28 '09 at 18:35
34  
It may not matter for simple searches, but for more complex find commands, it's worth noting that things are evaluated in the order they are on the commandline. So, you might want to have the -type d (directories only) before -name, in order to speed things up. Again, this may not matter much here, but when getting into more complex searches it can improve search speed considerably. –  Dominic Eidson Jun 28 '09 at 19:00
    
... that is a really useful thing to know, thanks dominic! –  Sirex Jan 24 '11 at 17:52
3  
Actually, the -name test is faster than most of the other tests since -name is matched against the directory's listing, which is already loaded from disk, and the other tests need to perform a stat(2) to get file information. After the first stat() call for a file, an subsequent tests get from memory, e.g.: -type f -mtime -10. –  Arcege Dec 30 '11 at 12:53
7  
If you are going to perform a find on the entire filesystem, especially a server, then it is usually good to use nice so the find doesn't take too many resources from more critical processes: nice find / ... –  Arcege Dec 30 '11 at 12:54
show 1 more comment

this command should get you what you are looking for:

find / -type d -name httpdocs

that will search from the root of your server for directories with the name of httpdocs or if you just want to search from the current directory replace the '/' with a '.'

Another command you can try is locate you would do something like:

locate httpdocs
share|improve this answer
    
locate httpdocs tells me "locate: command not found" –  Edward Tanguay Jun 28 '09 at 18:36
1  
For those using the "locate" command (given that it exists in your system), make sure that that database it looks up is up-to-date; normally some cron job takes care of it. Otherwise, run "updatedb" (being root). Then run your needed "locate <somefile>". This is necessary for finding recently added files/dirs. –  David Ramirez Nov 2 '12 at 23:23
    
+1 for locate. It's a lot faster but only if its index is up to date. Fortunately, something like "httpdocs" won't change location frequently. If you're planning on repeatedly searching for files on a machine, it's worth the few minutes needed to set up the updatedb cron job. –  Doug Harris Mar 25 '13 at 18:57
    
Also in many cases, locate will return too many results since all 100k files in that directory will show up. In this particular case if every user has their own httpdocs with 100's or 1000's of files the result the OP wants will probably be lost. –  Jistanidiot Jul 16 at 12:46
add comment

you almost have it. the correct syntax would be:

find / -type d -name httpdocs

The directory is likely under /var/www/

share|improve this answer
    
that tells me "paths must precede expression" –  Edward Tanguay Jun 28 '09 at 18:12
add comment
find / -type d -name httpdocs 2> /dev/null

This will eliminate all the error messages you'll likely (read, always) get when not doing this as the root user. Would recommend doing it this way.

share|improve this answer
    
The 2> /dev/null option is very helpful. Otherwise it can be hard to see the wanted results... –  Gottlieb Notschnabel Feb 14 at 18:59
add comment

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.