Comment filtrer un resultat de recherche locate par repertoire.

Résolu/Fermé
afrogodfather Messages postés 16 Date d'inscription mardi 21 août 2012 Statut Membre Dernière intervention 18 mars 2013 - 5 mars 2013 à 12:35
afrogodfather Messages postés 16 Date d'inscription mardi 21 août 2012 Statut Membre Dernière intervention 18 mars 2013 - 5 mars 2013 à 16:09
Bonjour,
Je suis un administrateur systèmes pas très doué en développement et j'ai besoin d'aide.
J'ai une tache à effectuer qui consisterait à créer un script qui pourra faire une recherche et afficher uniquement les résultats qui se trouvent dans le répertoire /home/rep; répertoire dans lequel est stocké la majorité des documents.
En bref faire une recherche avec "locate" et éliminer les résultats se trouvant hors du répertoire /home/rep, car il peut y avoir des documents sensibles et faire un filtrage si les résultats sont énormes.
J'ai pu trouver la solution php pour faire une recherche par contre je ne parviens pas à filtrer les resultats et limiter les recherches à /home/rep.
Merci d'avance.

Je suis sous ubuntu 12.10
serveur apache2 et php5

3 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
5 mars 2013 à 13:08
Salut,

Utiliser la commande "find" à la place de "locate" ?
1
afrogodfather Messages postés 16 Date d'inscription mardi 21 août 2012 Statut Membre Dernière intervention 18 mars 2013 5
5 mars 2013 à 14:17
Merci pour ta réponse mais le soucis est que la commende find cherche un peu plus longtemps et passe "répertoire" après répertoire par contre "locate" va plus vite. On m'a imposé cela et je ne sais si le php pourrait le faire en empechant tout les repertoires /home/rep de s'afficher.
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
5 mars 2013 à 13:30
hello
locate  -r "/home/rep/.*fichier"
0
afrogodfather Messages postés 16 Date d'inscription mardi 21 août 2012 Statut Membre Dernière intervention 18 mars 2013 5
5 mars 2013 à 14:21
Merci dubcek je vais voir ce que ca donne,
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
5 mars 2013 à 14:26
tu peux peut être faire sinon une base de donnée de recherche par /home/rep, comme ça tu optimise réellement.
0
afrogodfather Messages postés 16 Date d'inscription mardi 21 août 2012 Statut Membre Dernière intervention 18 mars 2013 5
5 mars 2013 à 14:35
En fait j'ai ceci comme code qui fonctionne bien avec "locate" mais qui manque de filtrage car il expose tout les répertoires du serveur. c'est pourquoi j'aimerai le limiter à /home/data. Et n'étant pas du tout doué en développement je me trouve coïncé, merci pour ton aide.

<html>
<body>
<pre>
<form action="#" method="get">
<input type="text" name="nom"/>
<input type="submit"/>
</form>
<?php

$nom=$_GET['nom'];
system("locate $nom | grep /");

?>
</pre>
</body>
</html>
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
5 mars 2013 à 15:57
locate -r regexp permet de filtrer à ce niveau
0
afrogodfather Messages postés 16 Date d'inscription mardi 21 août 2012 Statut Membre Dernière intervention 18 mars 2013 5
5 mars 2013 à 16:09
Merci Dubcek et à vous autres le regexp marche bien. ca marche comme je voulais pour la première partie. il ne me reste plus qu'à l'introduire dans le script, vous êtes sympa
0