Get-ChildItem în PowerShell

Fișiere și foldere Windows PowerShell 1.0

Listează fișierele și folderele dintr-o locație, opțional recursiv, filtrate după nume sau tip (echivalentul lui dir și ls).

Sintaxă
Get-ChildItem [[-Path] <string[]>] [[-Filter] <string>] [-Recurse] [-Depth <uint>] [-File] [-Directory] [-Force] [-Name]

Ce face Get-ChildItem

Get-ChildItem întoarce elementele dintr-o locație: fișierele și subfolderele unui folder, dar și cheile din registry sau certificatele din Cert:, pentru că lucrează cu orice provider. Fără -Path listează folderul curent. Rezultatul nu e text, ci obiecte FileInfo și DirectoryInfo, pe care le poți trimite mai departe la Where-Object, Sort-Object sau Remove-Item.

Afișarea implicită are coloanele Mode (literele d folder, a arhivă, r doar citire, h ascuns, s sistem, l link), LastWriteTime, Length (octeți) și Name. Formatul datei depinde de setările regionale; exemplele de aici folosesc en-US. Pe macOS și Linux, din PowerShell 7.1, tabelul are coloane în stil Unix (UnixMode, User, Group, Size).

Aliasuri: dir și gci pe toate sistemele, ls doar pe Windows (pe macOS și Linux, ls pornește comanda nativă). -Depth a apărut în PowerShell 5.0, iar -FollowSymlink în PowerShell 6.0.

Parametri

Parametru Descriere
-Path Locația (sau locațiile) de listat; acceptă wildcard-uri (C:\Proiecte\*.txt). Implicit, folderul curent.
-Filter Un singur tipar cu * și ?, aplicat direct de sistemul de fișiere; e mai rapid decât -Include.
-Include / -Exclude Tipare (mai multe, cu *, ?, []) aplicate de PowerShell după enumerare. -Include cere * la finalul căii sau -Recurse.
-Recurse Coboară în toate subfolderele.
-Depth Limitează câte niveluri de subfoldere parcurge (implică recursivitate).
-File / -Directory Doar fișiere, respectiv doar foldere (aliasuri -af și -ad).
-Force Include elementele ascunse și de sistem.
-Name Întoarce doar numele, ca șiruri de caractere.
-LiteralPath Calea folosită exact cum e scrisă, fără wildcard-uri (utilă pentru nume cu [ ]).

Ce returnează

Obiecte System.IO.FileInfo și System.IO.DirectoryInfo în sistemul de fișiere; cu -Name, șiruri String.

Exemple

Exemplul 1: Conținutul unui folder

Listarea simplă arată folderele (Mode d–-) și fișierele, cu dimensiunea în octeți.

Get-ChildItem -Path C:\Proiecte

Ieșire în terminal

    Directory: C:\Proiecte

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----         10/20/2026   9:14 AM                facturi
d----         10/24/2026   4:02 PM                rapoarte
-a---         10/23/2026  11:30 AM          18432 buget-2026.xlsx
-a---         10/25/2026   8:45 AM           1247 note.txt

Exemplul 2: Toate facturile PDF, inclusiv din subfoldere

-Filter alege doar fișierele .pdf, -Recurse intră în subfoldere, iar -File exclude folderele. Rezultatul are câte un bloc Directory pentru fiecare folder.

Get-ChildItem -Path C:\Proiecte\facturi -Filter *.pdf -Recurse -File

Ieșire în terminal

    Directory: C:\Proiecte\facturi

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---         10/20/2026   9:14 AM          84210 factura-ciorna.pdf

    Directory: C:\Proiecte\facturi\2025

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---         12/18/2025   2:40 PM          91544 factura-2025-118.pdf
-a---         12/29/2025  10:05 AM          88730 factura-2025-121.pdf

    Directory: C:\Proiecte\facturi\2026

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---         10/15/2026   1:22 PM          90118 factura-2026-087.pdf

Exemplul 3: Doar numele subfolderelor

Cu -Directory și -Name primești doar numele folderelor, ca text simplu, bun de folosit într-o buclă.

Get-ChildItem -Path C:\Proiecte -Directory -Name

Ieșire în terminal

facturi
rapoarte

Greșeli frecvente

  • Get-ChildItem -Path C:\Proiecte -Include *.txt nu întoarce nimic: -Include are nevoie de * la finalul căii (C:\Proiecte\*) sau de -Recurse. Pentru un singur tipar, -Filter *.txt e mai simplu și mai rapid.
  • Fișierele ascunse (de exemplu .gitignore cu atributul Hidden pe Windows) nu apar fără -Force.
  • Pe macOS și Linux, ls nu e alias pentru Get-ChildItem: rulează comanda nativă și întoarce text, nu obiecte. Folosește Get-ChildItem, gci sau dir în scripturi portabile.
  • Combinația -Path cu -Recurse caută ultimul element al căii în toată ierarhia dacă nu e un subfolder direct. Pentru rezultate previzibile, dă folderul în -LiteralPath și tiparul în -Filter.

Comenzi înrudite

  • Set-Location: Schimbă folderul curent (cd); Get-Location îl afișează, iar Push-Location și Pop-Location salvează și refac locațiile pe o stivă.
  • Test-Path: Verifică dacă o cale există și întoarce True sau False; poate cere să fie fișier sau folder și să fie mai nouă decât o dată.
  • Where-Object: Filtrează obiectele din pipeline și le lasă să treacă doar pe cele care îndeplinesc o condiție.
  • Sort-Object: Sortează obiectele după una sau mai multe proprietăți, crescător sau descrescător, opțional doar primele N.
  • Remove-Item: Șterge fișiere și foldere (și alte elemente, ca chei de registry); ștergerea este definitivă, nu în Coșul de reciclare.
  • Comenzi CMD și echivalentul PowerShell: Ce folosești în PowerShell în locul comenzilor CMD obișnuite (dir, cd, copy, del, ipconfig, ping, tasklist, taskkill, set).