Bird
Raised Fist0
Linux CLIscripting~5 mins

tar (create and extract archives) in Linux CLI - Commands & Configuration

Choose your learning style10 modes available
Introduction
Sometimes you want to bundle many files into one file to move or save space. The tar command helps you pack files into an archive and also unpack them later.
When you want to send multiple files as one package to a friend or colleague.
When you need to back up a folder with many files into a single file.
When you want to compress files to save disk space or transfer time.
When you receive a tar archive and want to see or extract its contents.
When you want to combine files before uploading or downloading them.
Commands
This command creates a tar archive named archive.tar from the folder named 'folder'. The flags mean: c=create, v=verbose (show files), f=file (name of archive).
Terminal
tar -cvf archive.tar folder
Expected OutputExpected
folder/ folder/file1.txt folder/file2.txt
→
-c - Create a new archive
→
-v - Show progress with file names
→
-f - Specify archive file name
This command lists the contents of the archive.tar file without extracting it. Flags: t=list, v=verbose, f=file.
Terminal
tar -tvf archive.tar
Expected OutputExpected
drwxr-xr-x user/user 0 2024-06-01 12:00 folder/ -rw-r--r-- user/user 1234 2024-06-01 12:00 folder/file1.txt -rw-r--r-- user/user 5678 2024-06-01 12:00 folder/file2.txt
→
-t - List archive contents
→
-v - Show detailed info
→
-f - Specify archive file name
This command extracts all files from archive.tar into the current directory. Flags: x=extract, v=verbose, f=file.
Terminal
tar -xvf archive.tar
Expected OutputExpected
folder/ folder/file1.txt folder/file2.txt
→
-x - Extract files from archive
→
-v - Show extracted files
→
-f - Specify archive file name
This command creates a compressed archive using gzip compression. Flags: c=create, z=gzip compress, v=verbose, f=file.
Terminal
tar -czvf archive.tar.gz folder
Expected OutputExpected
folder/ folder/file1.txt folder/file2.txt
→
-c - Create archive
→
-z - Compress with gzip
→
-v - Show files
→
-f - Archive file name
This command extracts a gzip compressed archive. Flags: x=extract, z=gzip decompress, v=verbose, f=file.
Terminal
tar -xzvf archive.tar.gz
Expected OutputExpected
folder/ folder/file1.txt folder/file2.txt
→
-x - Extract files
→
-z - Decompress gzip
→
-v - Show files
→
-f - Archive file name
Key Concept

If you remember nothing else from tar, remember: use -c to create archives and -x to extract them, always with -f to specify the archive file.

Common Mistakes
Forgetting the -f flag when creating or extracting archives
tar will try to read from or write to a default device or stdin/stdout, causing errors or unexpected behavior
Always include -f followed by the archive file name to tell tar which file to use
Trying to extract a compressed archive without the -z flag
tar won't decompress gzip files without -z, so extraction fails or produces garbage
Add -z when working with .tar.gz files to handle gzip compression properly
Using -c (create) and -x (extract) together in one command
These flags do opposite actions and cannot be combined; tar will error out
Use either -c to create or -x to extract in a single command, not both
Summary
Use 'tar -cvf archive.tar folder' to create an archive from a folder.
Use 'tar -tvf archive.tar' to list contents of an archive without extracting.
Use 'tar -xvf archive.tar' to extract files from an archive.
Add -z flag to compress or decompress gzip archives (.tar.gz).

Practice

(1/5)
1. What does the tar -cvf archive.tar folder/ command do?
easy
A. Extracts files from archive.tar into the folder directory
B. Compresses the folder directory using gzip
C. Creates a tar archive named archive.tar containing the folder directory
D. Lists the contents of archive.tar without extracting

Solution

  1. Step 1: Understand the flags used

    The -c flag means create an archive, -v means verbose (show progress), and -f specifies the archive file name.
  2. Step 2: Analyze the command effect

    The command creates a new archive file named archive.tar containing the contents of the folder/ directory.
  3. Final Answer:

    Creates a tar archive named archive.tar containing the folder directory -> Option C
  4. Quick Check:

    tar -cvf = create archive [OK]
Hint: -c means create archive, -f specifies filename [OK]
Common Mistakes:
  • Confusing -c (create) with -x (extract)
  • Thinking -v compresses files
  • Assuming it extracts files instead of creating
2. Which of the following is the correct syntax to extract a gzip compressed tar archive named backup.tar.gz?
easy
A. tar -xvzf backup.tar.gz
B. tar -xvf backup.tar.gz
C. tar -cvf backup.tar.gz
D. tar -czf backup.tar.gz

Solution

  1. Step 1: Identify extraction and compression flags

    -x extracts, -v shows progress, -z handles gzip compression, and -f specifies the file.
  2. Step 2: Match flags to the command

    To extract a gzip compressed archive, use tar -xvzf filename. tar -xvzf backup.tar.gz matches this syntax.
  3. Final Answer:

    tar -xvzf backup.tar.gz -> Option A
  4. Quick Check:

    Extract gzip archive = -xvzf [OK]
Hint: -xvzf extracts gzip compressed tar files [OK]
Common Mistakes:
  • Omitting -z when extracting gzip archives
  • Using -c (create) instead of -x (extract)
  • Confusing -v (verbose) as mandatory
3. What will be the output of the command tar -tvf archive.tar if archive.tar contains files file1.txt and file2.txt?
medium
A. Shows an error because -t cannot be combined with -v
B. Extracts file1.txt and file2.txt to current directory
C. Creates a new archive named archive.tar
D. Lists file1.txt and file2.txt with details without extracting

Solution

  1. Step 1: Understand the flags

    -t lists contents of an archive, -v shows details, and -f specifies the archive file.
  2. Step 2: Predict the command output

    The command lists the files inside archive.tar with details, without extracting them.
  3. Final Answer:

    Lists file1.txt and file2.txt with details without extracting -> Option D
  4. Quick Check:

    -t lists contents, -v shows details [OK]
Hint: -t lists archive contents, -v adds details [OK]
Common Mistakes:
  • Thinking it extracts files instead of listing
  • Assuming -t and -v cannot be combined
  • Confusing -t with -x
4. You run tar -cvzf archive.tar.gz folder/ but get an error. What is the likely cause?
medium
A. The order of flags is incorrect; -z must come before -c
B. The folder/ directory does not exist
C. The -f flag must be last and followed by the filename
D. You cannot combine -v and -z flags

Solution

  1. Step 1: Verify command syntax

    The flags -c (create), -v (verbose), -z (gzip), -f archive.tar.gz are correct, with filename immediately after -f.
  2. Step 2: Determine error cause

    The syntax is valid, so the likely cause is that folder/ does not exist, causing a "Cannot stat: No such file or directory" error.
  3. Final Answer:

    The folder/ directory does not exist -> Option B
  4. Quick Check:

    tar create error = missing source directory [OK]
Hint: tar create errors usually from missing source files/directories [OK]
Common Mistakes:
  • Assuming flag order syntax error
  • Overlooking if source directory exists
  • Confusing with permission issues
5. You want to create a compressed archive of the project/ folder, but exclude all .log files inside it. Which command achieves this?
hard
A. tar -czvf project.tar.gz --exclude='*.log' project/
B. tar -czvf project.tar.gz project/ --exclude='*.log'
C. tar -cvzf project.tar.gz project/ --exclude='*.log'
D. tar -xvzf project.tar.gz --exclude='*.log' project/

Solution

  1. Step 1: Understand exclusion and compression flags

    The --exclude='*.log' option excludes files matching the pattern. -c creates, -z compresses with gzip, -v shows progress, and -f specifies the archive filename.
  2. Step 2: Check correct flag order and placement

    The exclude option must come before the folder argument. tar -czvf project.tar.gz --exclude='*.log' project/ correctly places --exclude='*.log' before project/ and uses correct flags.
  3. Final Answer:

    tar -czvf project.tar.gz --exclude='*.log' project/ -> Option A
  4. Quick Check:

    Exclude before folder, use -czvf for compressed archive [OK]
Hint: Put --exclude before folder, use -czvf to create compressed archive [OK]
Common Mistakes:
  • Placing --exclude after folder argument
  • Using -x (extract) instead of -c (create)
  • Mixing flag order or misspelling exclude
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard