Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
PowerShell on macOS: Basic Script to List and Filter Files
📖 Scenario: You are using PowerShell on your Mac to manage files in a folder. You want to list all files and then filter files by size.
🎯 Goal: Build a PowerShell script that lists files in a folder, sets a size limit, filters files larger than that size, and displays the filtered list.
📋 What You'll Learn
Create a variable with a list of files in the current directory
Create a variable to hold a size limit in bytes
Filter the list of files to only those larger than the size limit
Display the filtered list of files
💡 Why This Matters
🌍 Real World
Managing files on macOS using PowerShell helps automate tasks like cleaning up large files or organizing documents.
💼 Career
PowerShell skills on macOS are useful for system administrators and developers who work in cross-platform environments.
Progress0 / 4 steps
1
Get the list of files in the current directory
Create a variable called files and set it to the list of files in the current directory using Get-ChildItem -File.
PowerShell
Hint
Use Get-ChildItem -File to get only files, not folders.
2
Set a size limit in bytes
Create a variable called sizeLimit and set it to 1000 to represent 1000 bytes.
PowerShell
Hint
Just assign the number 1000 to sizeLimit.
3
Filter files larger than the size limit
Create a variable called largeFiles and set it to the files from files where the Length property is greater than sizeLimit. Use Where-Object with a script block.
PowerShell
Hint
Use Where-Object { $_.Length -gt $sizeLimit } to filter files by size.
4
Display the filtered list of large files
Use Write-Output to display the variable largeFiles.
PowerShell
Hint
Use Write-Output $largeFiles to show the filtered files.
Practice
(1/5)
1. Which command do you use to start PowerShell on macOS after installation?
easy
A. pwsh
B. powershell
C. ps
D. shell
Solution
Step 1: Recall the PowerShell command on macOS
On macOS, PowerShell is started using the pwsh command, not powershell which is used on Windows.
Step 2: Identify the correct command
Among the options, only pwsh is the correct command to launch PowerShell on macOS.
Final Answer:
pwsh -> Option A
Quick Check:
PowerShell on macOS starts with pwsh [OK]
Hint: Remember: macOS uses 'pwsh' to start PowerShell [OK]
Common Mistakes:
Typing 'powershell' instead of 'pwsh' on macOS
Using 'ps' which lists processes, not PowerShell
Assuming 'shell' starts PowerShell
2. Which of the following is the correct syntax to run a PowerShell script named script.ps1 on macOS terminal?
easy
A. ./script.ps1
B. run script.ps1
C. pwsh script.ps1
D. powershell -file script.ps1
Solution
Step 1: Understand how to run scripts in PowerShell on macOS
On macOS, you run PowerShell scripts by calling pwsh followed by the script name.
Step 2: Check each option
./script.ps1 tries to run the script directly, which may fail without execution permission and PowerShell context. powershell -file script.ps1 uses Windows syntax. run script.ps1 is invalid. pwsh script.ps1 correctly runs the script with PowerShell.
Final Answer:
pwsh script.ps1 -> Option C
Quick Check:
Run scripts with 'pwsh script.ps1' on macOS [OK]
Hint: Use 'pwsh script.ps1' to run scripts on macOS [OK]
Common Mistakes:
Trying to run script directly without 'pwsh'
Using Windows PowerShell syntax on macOS
Using 'run' command which doesn't exist
3. What will be the output of this PowerShell command run on macOS terminal?
pwsh -Command "Write-Output 'Hello macOS'"
medium
A. Hello macOS
B. Write-Output 'Hello macOS'
C. pwsh: command not found
D. Error: Invalid command
Solution
Step 1: Understand the command structure
The command uses pwsh -Command to run a PowerShell command inline, which outputs the string 'Hello macOS'.
Step 2: Predict the output
The Write-Output cmdlet prints the string to the terminal, so the output will be exactly 'Hello macOS'.
Final Answer:
Hello macOS -> Option A
Quick Check:
Write-Output prints text to terminal [OK]
Hint: Write-Output prints text; expect exact string output [OK]
Common Mistakes:
Confusing command string with output
Assuming 'pwsh' is not installed
Expecting error due to quotes
4. You try to run a PowerShell script on macOS with pwsh ./myscript.ps1 but get a permission denied error. What is the most likely fix?
medium
A. Use sudo pwsh ./myscript.ps1 to run as admin
B. Run chmod +x myscript.ps1 to add execute permission
C. Rename the script to myscript.sh
D. Reinstall PowerShell on macOS
Solution
Step 1: Identify cause of permission denied
On macOS, scripts need execute permission to run. Without it, you get a permission denied error.
Step 2: Fix permission issue
Using chmod +x myscript.ps1 adds execute permission, allowing the script to run.
Final Answer:
Run chmod +x myscript.ps1 to add execute permission -> Option B
Quick Check:
Permission denied? Add execute permission with chmod [OK]
Hint: Add execute permission with chmod +x before running script [OK]
Common Mistakes:
Trying to run script without execute permission
Renaming script to .sh which doesn't help PowerShell
Using sudo unnecessarily
Reinstalling PowerShell instead of fixing permissions
5. You want to automate listing all files in your Documents folder on macOS using PowerShell and save the output to a text file named files.txt. Which command correctly does this?
hard
A. Get-ChildItem ~/Documents > files.txt
B. ls ~/Documents > files.txt
C. pwsh -Command "ls" ~/Documents > files.txt
D. pwsh -Command "Get-ChildItem ~/Documents | Out-File files.txt"
Solution
Step 1: Use PowerShell cmdlet to list files
Get-ChildItem lists files and folders in PowerShell. Using ~/Documents targets the Documents folder.
Step 2: Redirect output to a file in PowerShell
PowerShell uses Out-File to save output to a file. The command runs inside pwsh -Command to execute from macOS terminal.
Final Answer:
pwsh -Command "Get-ChildItem ~/Documents | Out-File files.txt" -> Option D
Quick Check:
Use Get-ChildItem with Out-File inside pwsh [OK]
Hint: Use Get-ChildItem piped to Out-File inside pwsh command [OK]
Common Mistakes:
Using shell redirection > inside PowerShell command incorrectly