Fisiere si directoare


  • Marca temporala a unui fisier
  • Proprietatile fisierelor
  • Globing
  • Directoare
  • Functii de fisiere

Marca temporala a unui fisier

Un fisier este de obicei legat de o ora sau o data care poate fi folosita pentru a afla, de exemplu, cand a fost modificat ultima data continutul unui fisier. Totusi, depinde foarte mult de sistemul de fisiere (si, prin urmare, de sistemul de operare) care sunt informatiile de timp salvate cu un fisier si care nu. www.dryforkcoal.com

Perl, dezvoltat initial sub UNIX, permite accesul la cele trei marcaje de timp cunoscute acolo:

  • Timp de acces ( atime ): Aceasta inregistreaza ultima data cand a fost accesat continutul unui fisier.
  • Timp de modificare ( mtime ): Acest marcaj de timp este actualizat de fiecare data cand se modifica continutul unui fisier. interfacetraining.info
  • Timp de schimbare ( ctime ): Aceasta marcheaza modificarile aduse proprietatilor fisierului (dimensiune, drepturi de acces, .. stopcomputerizedvoting.com .). www.lagunafenceproducts.com

Functia atributului fisierului de

marcaj temporal poate fi schimbata de utime ()? atime -A stat [8] da mtime -M stat [9] da ctime -C stat [10] nu

Atat operatorii de atribut al fisierului „-A”, „-M” si „-C”, precum si functia stat () se asteapta ca argument fie un handler de fisier, fie un nume de fisier. Cu toate acestea, valorile de returnare difera prin faptul ca primul scoate timpii in unitati de zile in raport cu inceperea programului apelant (mai precis: continutul variabilei speciale $ ^ T sau $ BASETIME), in timp ce stat () in contextul listei in Elementele de la 8 la 10 fiecare contine timpul corespunzator in secunde de la „epoca” (01/01/1970, 00:00 GMT). beyondtomorrowcomics.com

Exemplu de aplicare:

#! / usr / local / bin / perl -w

folositi strict;

varsta mea de $ = (

-M “test.pl”); # Numar in virgula mobila!

print “Ultima modificare $ vechi \ n”;

Trebuie subliniat inca o data ca cele de mai sus se aplica sistemelor de tip UNIX – cu alte sisteme de operare ar trebui sa verificati documentatia respectiva pentru a vedea care este semnificatia valorilor returnate ale operatorilor sau stat () declarati acolo. nr1.psi-ar.com

[Inceputul paginii]

Proprietatile fisierelor

Pe langa orele deja explicate, exista o serie de alte proprietati ale fisierului care pot fi interogate cu ajutorul operatorilor de atribute ale fisierului. Urmatoarea lista contine doar cele mai importante dintre ele:

  • -r poate fi citit (in cazul unui fisier, continutul; in cazul unui director, lista de fisiere si subdirectoare)
  • -w fisierul poate fi scris/modificat (continutul unui fisier; lista fisierelor si subdirectoarelor din directoare)
  • -x Fisierul poate fi executat (fisierele ca programe executabile; directoarele pot fi modificate, de exemplu, cu comanda chdir)
  • -e fisierul exista
  • -z fisierul are lungime zero
  • -s Returneaza lungimea fisierului
  • -f fisierul este un fisier simplu
  • -d fisierul este un director
  • -l fisierul este o legatura simbolica

Exemplu de aplicare:

#! / usr / local / bin / perl -w

folositi strict;

daca (

-r “test. www.laboratoires-des-produits-pharmaceutiques-dafrique-du-nord.com pl”) {printeaza “lizibil \ n”} 

altfel {printeaza “nu se poate citi \ n”}

tipariti „lungimea este:”. (

-s „test. uspour.com pl”). „\ n”;

Functia stat (), de asemenea, deja mentionata, returneaza un numar de proprietati ale fisierului simultan in contextul listei:

Proprietatea indexului 0 Numarul dispozitivului al sistemului de fisiere 1 Numarul inodului 2 Drepturile de acces 3 Numarul de legaturi hard 4 ID utilizator al proprietarului fisierului 5 ID grup al fisierului 6 Identificarea dispozitivului 7 Marimea fisierului (in octeti) 8 la timp 9 mtime 10 ctime 11 Dimensiunea de bloc preferata pentru transferul de date 12 Numarul de blocuri alocate

Deoarece functia stat () mapeaza direct functia sistemului UNIX stat (), tabelul de mai sus se poate aplica numai cu restrictii din alte sisteme de operare. mcf.iexit.com

Exemplu:

#! / usr / local / bin / perl -w

folositi strict;

fisierul meu $ = “test.pl”;

@a mea = 

stat (fisier $);

print „Fisierul „$ fisier” este 

$ a [7] octeti mari. optionsabc.net \ n “;

[Inceputul paginii]

Globing

Intr-un shell UNIX este posibil sa obtineti o lista de fisiere prin specificarea unui model care contine substituenti precum * sau? contine. Deci livreaza

ls -1 * . promoscape.com html

o singura coloana (optiunea de dupa „ls” este numarul „1”) lista cu toate fisierele care se termina in .html. www.bondstreetcap.com

Exista un mecanism analog in Perl cu functia glob () si asa-numitul operator romb „<>”. Exemplul de shell de mai sus poate fi apoi implementat dupa cum urmeaza:

#! / usr / local / bin / perl -w

folositi strict;

foreach numele meu de fisier $ (

glob (“*. www.emigrantrealtyfinance.net html”)) {

    print $ nume de fisier. “\ n”

}

Sau:

#! / usr / local / bin / perl -w

folositi strict;

foreach numele meu de fisier $ (

<*. catchhim.com html>) {

    print $ nume de fisier.



  • vremea tecuci
  • shutterstock
  • zodiac
  • angol magyar szótár
  • ministerul afacerilor interne
  • it
  • alina eremia
  • vlad cazino
  • tube8
  • medlife
  • mydocalm
  • judecatoria constanta
  • ase online
  • ion tiriac
  • porno cu mature
  • snaptube
  • radio manele
  • istoric
  • farmacie veterinara
  • win for life





“\ n”

}

De asemenea, puteti trece lista de fisiere direct intr-o matrice:

#! / usr / local / bin / perl -w

folositi strict;

@fileliste al meu = 

glob (“*. co2alternative.org html”);

foreach my $ filename (@fileliste) {

    print $ filename. “\ n”

}

Chiar si variabilele pot fi utilizate in modelul de fisier:

#! / usr / local / bin / perl -w

folositi strict;

calea mea $ = ‘perla’;

@fileliste al meu = 

<$ cale / *. www.musicsurround.com html>;

foreach my $ filename (@fileliste) {printeaza $ filename. “\ n”}

modelul meu $ = ‘* . www.komainc.net html’;

@fileliste = 

<$ {model}>; # Caz special pentru

numele meu de fisier $ (@fileliste) {printati numele fisierului $. „\ N”}

In exemplul de mai sus, <$ {pattern}> trebuie folosit in locul <$ model> in a doua parte, deoarece exista o singura variabila in operatorul romb. qel.texasgoose.com

Daca doriti sa aflati mai multe: intr-o expresie precum <$ muster>, $ muster este considerat un „manager de fisier indirect”. Cu aceasta puteti, de exemplu, sa treceti manerele fisierelor ca parametri la subrutine. www.extremeclay.net

Exemplu:

#! / usr / local / bin / perl -w

folositi strict;

deschideti (FILE, ‘test.dat’)

  sau muriti „Nu se poate citi fisierul: $! \ n”;

print_file (\ * FILE);

inchidere (DOSAR);

sub print_file {

    manerul meu $ = $ _ [0];

    in timp ce (

<$ maner>) {printare}

}

[Inceputul paginii]

Directoare

Similar cu modul in care fisierele pot fi deschise pentru citire, directoarele pot fi, de asemenea, gestionate pentru a putea accesa numele fisierelor din continutul folderului. www.goldoutlet.biz

Exemplu:

#! / usr / local / bin / perl -w

folositi strict;

opendir (DIR, “perl”);

while (fisierul meu $ = readdir (DIR)) {printeaza fisierul $. “\ n”}

closedir (DIR);

Directorul este deschis cu opendir (). Primul argument aici este asa-numitul „maner de director”, al carui nume ar trebui sa fie format din majuscule, similare cu manerele de fisier. Functia readdir () returneaza apoi intrarile individuale din folder. in cele din urma closedir () incheie accesul la director.

Directorul curent poate fi determinat independent de platforma cu ajutorul functiei cwd () a modulului standard Cwd.

Exemplu:

#! / usr / local / bin / perl -w

folositi strict;

utilizati Cwd;

my $ akt_verz = 

cwd ();

printeaza „directorul curent: $ akt_dir \ n”;

O schimbare de director este posibila folosind functia chdir (). Totusi, aceasta depinde de sistemul de operare sub care ruleaza Perl in prezent, acordand o atentie deosebita caracterului care separa numele fisierelor/directoarelor din cale.

Ca exemplu, UNIX si MacOS „clasic” sunt comparate aici:

  UNIX MacOS Classic Path separator /: Schimbati intr-un director superior chdir (‘.. ‘); chdir (‘::’); Deschideti directorul curent opendir (ABC, ‘.’); opendir (ABC, ‘:’);

[Inceputul paginii]

Functii de fisiere

Urmatoarele functii sunt disponibile pentru lucrul cu fisiere; In functie de sistemul de operare, nu toate sunt intotdeauna disponibile (de exemplu, nu exista link-uri hard pe platforma clasica Macintosh):

  • Schimbarea numelui: redenumeste ()

    #! / usr / local / bin / perl -w

    foloseste strict; redenumeste (“nume_vechi”, “nume_nou”);

  • Stergerea unui fisier: deconectati ()

    #! / usr / local / bin / perl -w

    use strict; unlink (“nume fisier”);

  • Creati un director: mkdir ()

    #! / usr / local / bin / perl -w

    use strict;

    permisiunile mele $ = 0777;

    mkdir (“dirname”, permisiuni $);

  • Stergerea unui director (gol): rmdir ()

    #! / usr / local / bin / perl -w

    foloseste strict; rmdir (“dirname”);

  • Creati un link dur: link ()

    #! / usr / local / bin / perl -w

    use strict; link (“nume fisier”, “nume link”);

  • Creati legatura soft: link simbol ()

    #! / usr / local / bin / perl -w

    foloseste strict; link simbolic (“nume fisier”, “nume link”);

  • Modificati drepturile de acces: chmod ()

    #! / usr / local / bin / perl -w

    use strict;

    permisiunile mele $ = 0755;

    chmod ($ permisiuni, “prog_1”, “prog_2”, “prog_3”);

  • Schimbati proprietarul: chown ()

    #! / usr / local / bin / perl -w

    use strict;

    my $ uid = 4987;                      

    # ID utilizator

    my $ gid = 33; # ID grup

    chown ($ uid, $ gid, “fisier”);

  • Modificarea datelor de timp: utime ()

    #! / usr / local / bin / perl -w

    use strict;

    timpul meu $ = 812_000_000;           

    # ultimul acces

    meu $ mtime = 822_000_000; # ultima

    modificare de continut utime ($ atime, $ mtime, „fisier”);

    Timpurile vor fi date in secunde incepand cu 1. 1.1970. Ora curenta a sistemului poate fi interogata folosind operatorul de timp:

    #! / usr / local / bin / perl -w

    use strict;

    print “Din 1.1. 1970 sunt”;

    imprimare 

    timp;

    print “Secundele trecute. \ n”;

[Inceputul paginii]