Question Comment trouver un répertoire sur Linux?


J'ai un VPS avec Suse Linux 10.3.

Je me suis connecté via SSH / mastic et j'essaie de trouver où se trouvent mes fichiers Web.

Depuis que je télécharge via FTP dans un répertoire appelé httpdocs, Je suppose que ce répertoire existe quelque part.

Mes recherches Google m'ont appris à le faire, allez dans mon répertoire racine et tapez:

find httpdocs -type d

mais ça dit "Aucun fichier ou répertoire de ce nom".

Comment trouver ce répertoire?


398
2018-06-28 17:51


origine


Si quelqu'un se demande, la commande dans la question trouve tous les répertoires (-type d) dans l'entrée du répertoire httpdocs (relative au répertoire de travail en cours, généralement mais pas nécessairement un répertoire). Il échoue avec un message d'erreur car il n'y a pas d'entrée de répertoire httpdocs dans le répertoire racine du système, et donc pas de point de départ pour une recherche. - Daniel Beck♦


Réponses:


C'est:

find / -type d -name 'httpdocs'

le premier paramètre "/" est où chercher, dans ce cas "/" c'est tout le système.

-name pourrait être -iname pour ignorer la casse

aussi -type n'est pas obligatoire

utilisation : homme trouver pour plus d'options


545
2018-06-28 18:00



find / -name 'httpdocs' fonctionne très bien merci - Edward Tanguay
Cela n'a peut-être aucune importance pour les recherches simples, mais pour les commandes de recherche plus complexes, il convient de noter que les choses sont évaluées dans l'ordre dans lequel elles se trouvent sur la ligne de commande. Donc, vous pourriez vouloir avoir le type -d (répertoires seulement) avant -name, afin d'accélérer les choses. Encore une fois, cela n’a pas beaucoup d’importance ici, mais lorsqu’il s’agit de recherches plus complexes, cela peut considérablement améliorer la vitesse de recherche. - Dominic Eidson
En fait, le -name le test est plus rapide que la plupart des autres tests depuis -name est comparé à la liste du répertoire, qui est déjà chargée à partir du disque, et les autres tests doivent effectuer une stat(2) pour obtenir des informations sur les fichiers. Après le premier stat() appel pour un fichier, un des tests suivants reçoivent de la mémoire, par exemple: -type f -mtime -10. - Arcege
Si vous allez effectuer une recherche sur l’ensemble du système de fichiers, en particulier sur un serveur, il est généralement bon d’utiliser nicedonc la recherche ne prend pas trop de ressources de processus plus critiques: nice find / ... - Arcege
Je voudrais ajouter 2> / dev / null pour éviter que mes résultats de recherche ne soient cachés dans toutes les erreurs de permission. - Jason Yeo


Cette commande devrait vous procurer ce que vous recherchez:

find / -type d -name httpdocs

cela recherchera des répertoires portant le nom de httpdocs à partir de la racine de votre serveur ou si vous souhaitez simplement rechercher à partir du répertoire actuel, remplacez le répertoire par un "."

Une autre commande que vous pouvez essayer est de localiser, vous feriez quelque chose comme:

locate httpdocs

59
2018-06-28 18:00



localiser httpdocs me dit "localiser: commande introuvable" - Edward Tanguay
Pour ceux qui utilisent la commande "Locate" (étant donné qu'elle existe dans votre système), assurez-vous que la base de données recherchée est à jour. Normalement, un travail cron s'en charge. Sinon, lancez "updatedb" (étant root). Ensuite, exécutez votre nécessaire "Locate <somefile>". Ceci est nécessaire pour trouver les fichiers / répertoires récemment ajoutés. - David Ramirez
+1 pour localiser. Ses beaucoup plus rapidement mais seulement si son index est à jour. Heureusement, quelque chose comme "httpdocs" ne changera pas fréquemment d'emplacement. Si vous envisagez de rechercher à plusieurs reprises des fichiers sur une machine, cela vaut les quelques minutes nécessaires pour configurer le job updatedb cron. - Doug Harris
De plus, dans de nombreux cas, la localisation retournera trop de résultats car tous les fichiers de 100 Ko de ce répertoire seront affichés. Dans ce cas particulier, si chaque utilisateur dispose de ses propres fichiers httpdocs avec 100 ou 1000 fichiers, le résultat souhaité sera probablement perdu. - Jistanidiot
+1 pour la localisation ... Je garde ma base de donnée à jour donc cette commande est très utile ... Excellente idée. - nicorellius


find / -type d -name httpdocs 2> /dev/null

Cela éliminera tous les messages d'erreur que vous aurez probablement (en lecture, toujours) lorsque vous ne le faites pas en tant qu'utilisateur root. Je recommande de le faire de cette façon.


26
2017-11-08 01:04



le 2> /dev/null l'option est très utile. Sinon, il peut être difficile de voir les résultats souhaités ... - Gottlieb Notschnabel
Voir également Comment puis-je exclure tous les messages de "permission refusée" de "trouver"? - galath


Il est important de connaître le paramètre -iname pour rechercher les modèles "insensibles à la casse" et l'utilisation de caractères génériques: *,?, Etc.

Deux exemples:

Rechercher tous les fichiers de / root qui contiennent la chaîne "Linux", insensible à la casse:

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

Rechercher dans tous les répertoires de / root qui contiennent la chaîne "Linux", insensible à la casse:

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

Extrait d'ici:

http://www.sysadmit.com/2015/12/linux-buscar-ficheros-directorios-con-find.html


10
2017-12-06 23:50



Cette question porte sur la façon de trouver un répertoire dont vous connaissez le nom, pas comment trouver un répertoire dont vous connaissez le nom (approximativement). D'ailleurs, la réponse acceptée (d'il y a plus de 6 ans!) Mentionne déjà -iname comme alternative insensible à la casse -name. - G-Man


vous l'avez presque. la syntaxe correcte serait:

find / -type d -name httpdocs

Le répertoire est probablement sous /var/www/


9
2018-06-28 18:02



qui me dit "les chemins doivent précéder l'expression" - Edward Tanguay