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?

  • 5
    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

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

  • 98
    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
  • 14
    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
  • 24
    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
  • 19
    I would append 2> /dev/null to avoid having my search results getting hidden in all the permission errors. – Jason Yeo Aug 21 '13 at 6:48
  • I prefer iname. – neverMind9 Jul 4 '19 at 14:47

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
  • locate httpdocs tells me "locate: command not found" – Edward Tanguay Jun 28 '09 at 18:36
  • 4
    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
    +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
  • 2
    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 '14 at 12:46
  • +1 for locate... I keep my database updated so this command is very useful... Great idea. – nicorellius Aug 25 '14 at 23:01
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.


It's important to know the parameter -iname to search "case insensitive" patterns and the use of wildcards: *, ?, etc..

Two examples:

Search all files from /root that contains the string "Linux", case insensitive:

find  /root -type f -iname "*linux*"

Search all directories from /root that contains the string "Linux", case insensitive:

find  /root -type d -iname "*linux*"

Extracted from here:


  • This question is about how to find a directory whose name you know, not how to find a directory whose name you know (approximately).  Besides, the accepted answer (from over 6 years ago!) already mentions -iname as a case-insensitive alternative to -name. – G-Man Says 'Reinstate Monica' Dec 7 '15 at 5:23

you almost have it. the correct syntax would be:

find / -type d -name httpdocs

The directory is likely under /var/www/

  • that tells me "paths must precede expression" – Edward Tanguay Jun 28 '09 at 18:12

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