Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    28

    ottenere il path di un file

    Ciao a tutti!

    se io apro un file in lettura cosi :


    codice:
    $file = "/home/antonio/prova.txt";
    open(FILE, "< $file") or die "Il path o il file non esistono!\n\n";
    
       
       while (!eof(FILE))
       {
          $riga = <FILE>;   
          print " $riga \n";
       }
       close(FILE);
    come posso salvare in una variabile il path o directory di appartenenza del file "prova.txt"?

    grazie

    ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    VIRUS ALERT - Violazione di sicurezza o di privacy.

    Non so se ho capito giusto, ma se si potesse fare, sarebbe possibile per un utente inserirsi nel tuo SO e, utilizzando dei piccoli bachi, copiare/modificare dei file di sistema, magari quello in cui custodisci il numero della tua carta di credito e le tue passwd.

    In linea di massima, in un sistema configurato bene, i CSS hanno accesso ad una dir per il database, ed ad una dir per le pagine Web. Le altre dir sono off-limits.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    28
    Originariamente inviato da Mich_
    VIRUS ALERT - Violazione di sicurezza o di privacy.

    Non so se ho capito giusto, ma se si potesse fare, sarebbe possibile per un utente inserirsi nel tuo SO e, utilizzando dei piccoli bachi, copiare/modificare dei file di sistema, magari quello in cui custodisci il numero della tua carta di credito e le tue passwd.

    In linea di massima, in un sistema configurato bene, i CSS hanno accesso ad una dir per il database, ed ad una dir per le pagine Web. Le altre dir sono off-limits.

    :maLOL:


    su questo non ci piove


    ma il mio problema era ottenere il "solo" path o directory di un determinato file

    per esempio se ho salvato in una variabile : $file = "/home/antonio/viruschedistruggeilmondo.txt";

    vorrei ottenere semplicemente in un altra variabile : $path = "/home/antonio";

    ps : onestamente non ho proprio capito la tua risposta (VIRUS ALERT in particolar modo), se me la spieghi gentilmente cosi possiamo affrontare l'argomento seriamente, se hai un minimo di conoscenza sull campo

    utilizzo Ubuntu come sistema operativo, certo rispetto a windows qualche exploit in meno è implementabile

    sei in grado di decryptare una password su sistema linux?

    COMPLIMENTI!voglio imparare anch'io a decryptare le password in /etc/passwd , anche se penso che il sistema su cui si basa è molto difficile da violare per un semplice utente

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Avevo capito tutta un'altra cosa.
    Credevo che volessi ricavare il path effettivo (quello del filesystem) dal path relativo del webserver.
    E questa e` una delle cose che non credo possibili (darebbe accesso via Web a risorse che non dovrebbero essere disponibili).
    E mi rifierivo alle passwd di terzi, eventualmente salvate nei file interni dei browser (o del SO): tali passwd sono scritte in chiaro o comunque in un sistema che puo` essere decodificato. Non mi riferivo alle passwd di sistema, che non possono essere decodificate (l'algoritmo e` unidirezionale: credo ci vorrebbero dei supercomputer che lavorano per anni, per decodificarle)

    Quindi torniamo alla domanda: si tratta semplicemente di estrarre da una stringa una sottostringa fino all'ultimo / ?

    Questo dovrebbe essere corretto (ma provalo perche` con le RE e` facilissimo sbagliare)
    my $path = "/home/antonio/prova.txt";
    $path ~= /^(.+\/)[^\/]$/;
    my $dirct = $1;
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    28
    okay, grazie

    si questo era il mio problema

    la regex è sbagliata sintatticamente, la tilde va dopo l'uguale

    l'ho provata ma nn va.

    conosco le regex, volendo potrei crearmela,

    non so esiste qualche modulo cpan che implementa una funzione di gestione delle directory?

    senza scrivere regex?

    ho provato a compilare Parrot::IO da cpan, sia installarlo da shell con l'installazione automatica "cpan install Parrot::IO:irectory" sia manualmente con perl Makefile.pl, make, make test, make install, ...fallisce sempre il make test

    è piu efficiente utilizzare una regex o una funzione gia implementata in un modulo cpan da includere con la use nell'intestazione dello script?

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Io sono convinto che una RE sia molto piu` efficiente di qualsiasi altra funzione o chiamata a moduli che devono essere caricati. Pero` non ho fatto esperimenti su questo.

    Aspettiamo se Shishii o altri guru del Perl sanno rispondere.

    PS: scusa per il ~= al posto di =~ E` una cosa che sbaglio sempre.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    28
    ho risolto

    codice:
    #|/usr/bin/perl
    my $path = "/home/antonio/prova.txt";
    my($directory, $file) = $path =~ m/(.*\/)(.*)$/;
    print "D=$directory, F=$file\n";
    risultato
    codice:
    antonio@ubuntu:~$ perl getPATH.pl
    D=/home/antonio/, F=prova.txt
    antonio@ubuntu:~$
    grazie comunque , sempre disponibili

    ciao

    ps : ho editato il codice perchè c'era una linea insignificante

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.