# Looking Around: Get-ChildItem

Get-ChildItem lists what's inside a folder, with a row for each folder and file that shows what kind of thing it is, when it last changed, its size and its name, and -Force shows the hidden ones too.

Novice · PowerShell · Operating System · Updated November 10, 2026

## After this lesson you can

- List what's in a folder with Get-ChildItem and read its Mode, LastWriteTime, Length and Name columns
- Show hidden items with -Force, and only files or folders with -File or -Directory

## Key takeaways

- `Get-ChildItem` lists the folders and files inside a folder: the one you're in, or the one whose path you give it.
- In the Mode column, `d` marks a folder and `h` a hidden item. Length is a file's size in bytes.
- `-Force` shows hidden items as well, `-File` shows only files and `-Directory` only folders.
- On Windows, hidden is a setting on the file. On a Mac or Linux, a name that starts with a dot is hidden.

A friend hands you a USB stick with "everything from the trip" on it. Or a tutorial says "check that the folder has a `package.json` in it". Or your Downloads folder has six hundred files and you want to know what they are before you clean up. Each time the question is the same: what's really in this folder? File Explorer shows you icons, and hides some files on purpose. PowerShell gives you a list with the facts about each thing, hidden ones included when you ask.

This lesson uses the `trip` folder from *Where Am I? Get-Location and Paths*. If you don't have it yet, run that lesson's practice-folder lines first.

## What's in a folder? Get-ChildItem

The things inside a folder are its *children*, the way a family tree puts children under their parents. `Get-ChildItem` gets them. With nothing after it, it lists the folder you're in; give it a path, and it lists that folder instead, without you going there:

```powershell
Get-ChildItem "$HOME\terminal-practice\trip"
```

```text
    Directory: C:\Users\Sam\terminal-practice\trip

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----           7/18/2026  9:40 PM                day-1-beach
d----           7/18/2026  9:40 PM                day-2-old-town
d----           7/18/2026  9:40 PM                day-3-mountains
-a---           7/18/2026  9:40 PM            228 itinerary.txt
-a---           7/18/2026  9:40 PM             71 packing-list.txt
```

The first line says which folder this is. Then comes one row for each child: the three day folders first, then the two files. Your dates and times will be the moment you made the practice folder.

If the folder isn't there, PowerShell says so in red, and the message names the path it looked for, so check it for a typo: `Cannot find path 'C:\Users\Sam\terminal-practice\trip\day-4-lake' because it does not exist.`

## Reading the four columns

Each row is a thing PowerShell knows facts about, and each column is one fact:

- **Mode** is a row of letters, a dash for each one that's off. `d` means *directory*, PowerShell's word for a folder. `a` (archive) appears on ordinary files. `h` means hidden, and `r` read-only.
- **LastWriteTime** is when the item last changed.
- **Length** is a file's size in bytes. Folders leave it blank. The pretend photos are empty files, so theirs is `0`.
- **Name** is the folder's or file's name, its extension (`.txt`, `.jpg`) included.

These facts are more than text on the screen. Module 3 shows how to sort and filter by them: the ten biggest files, everything changed this week.

The short names for `Get-ChildItem` are `ls`, `dir` and `gci`. You'll see all three in other people's commands. (On a Mac or Linux, `ls` runs the system's own `ls` program instead, which looks different.)

## Only files, or only folders

Two **parameters**, extra instructions written after a dash, narrow the list. `-File` keeps only the files, and `-Directory` only the folders:

```powershell
Get-ChildItem "$HOME\terminal-practice\trip" -Directory
```

```text
    Directory: C:\Users\Sam\terminal-practice\trip

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----           7/18/2026  9:40 PM                day-1-beach
d----           7/18/2026  9:40 PM                day-2-old-town
d----           7/18/2026  9:40 PM                day-3-mountains
```

## What's hidden: -Force

Some files are hidden so you don't change them by accident: settings, an app's private data. Your own home folder has a hidden `AppData` folder where apps keep their settings. The practice folder has a hidden file too, and `-Force` shows it:

```powershell
Get-ChildItem "$HOME\terminal-practice\trip" -Force
```

```text
    Directory: C:\Users\Sam\terminal-practice\trip

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----           7/18/2026  9:40 PM                day-1-beach
d----           7/18/2026  9:40 PM                day-2-old-town
d----           7/18/2026  9:40 PM                day-3-mountains
---h-           7/18/2026  9:40 PM             40 budget.txt
-a---           7/18/2026  9:40 PM            228 itinerary.txt
-a---           7/18/2026  9:40 PM             71 packing-list.txt
```

There's the trip budget, with an `h` in its Mode. A **hidden file** is an ordinary file with one setting switched on, and the practice-folder lines switched it on with `Set-ItemProperty`. Hidden isn't secret: anyone who adds `-Force` sees it.

**On a Mac or Linux**, and in Terminal Quest, hidden works differently: a name that starts with a dot, such as `.crab-shell`, is hidden, and `-Force` shows it the same way. In Windows PowerShell 5.1 the Mode column has six letters (`d-----`) instead of five.

**Try it.** List your Downloads folder with `Get-ChildItem "$HOME\Downloads"`. Which row is the biggest file? Then add `-Force` and see whether anything new appears.

## Try it in the terminal

[Terminal Quest: The Lighthouse, goal 2](https://www.ask-codey.com/games/terminal-quest/lighthouse/powershell/step): played right on the lesson page.

You've found out where you are. Now look around the lighthouse and see what's here.

## Check yourself

2 questions to try on the lesson page.

## So what

Before you change anything in a folder, look first. `Get-ChildItem` shows you every child and its facts, hidden ones too when you ask, and that habit saves you from deleting or overwriting the wrong thing later.

## Key terms

- [Get-ChildItem](https://www.ask-codey.com/glossary/get-childitem)
- [Hidden File](https://www.ask-codey.com/glossary/hidden-file-powershell)
- [Parameter](https://www.ask-codey.com/glossary/parameter-powershell)

## Cheat sheets

- [Looking Around: Get-ChildItem](https://www.ask-codey.com/cheat-sheets/powershell-looking-around-cheat-sheet)

## Related

- [Where Am I? Get-Location and Paths](https://www.ask-codey.com/lessons/powershell-where-am-i)
- [Moving Around: Set-Location, .. and Tab](https://www.ask-codey.com/lessons/powershell-moving-around)

Source: https://www.ask-codey.com/lessons/powershell-looking-around
