Bird
Raised Fist0
Linux CLIscripting~5 mins

cp (copy files and directories) in Linux CLI - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: cp (copy files and directories)
O(n)
Understanding Time Complexity

When copying files or directories, it is important to understand how the time taken grows as the amount of data increases.

We want to know how the copy command's work changes when copying more or larger files.

Scenario Under Consideration

Analyze the time complexity of the following copy command.

cp -r source_dir/ destination_dir/

This command copies all files and folders inside source_dir recursively into destination_dir.

Identify Repeating Operations

Look at what repeats during the copy process.

  • Primary operation: Reading and writing each file's data.
  • How many times: Once for every file and folder inside the source directory, including nested ones.
How Execution Grows With Input

The time to copy grows as the total number of files and their sizes increase.

Input Size (n files)Approx. Operations
10Copy 10 files, reading and writing each once.
100Copy 100 files, about 10 times more work than 10 files.
1000Copy 1000 files, about 100 times more work than 10 files.

Pattern observation: The work grows roughly in direct proportion to the number of files and their sizes.

Final Time Complexity

Time Complexity: O(n)

This means the time to copy grows linearly with the number of files and their total size.

Common Mistake

[X] Wrong: "Copying a directory is always fast because it just copies folder names."

[OK] Correct: The command copies every file inside, not just folder names, so the time depends on all file sizes and counts.

Interview Connect

Understanding how copying scales helps you reason about file operations in scripts and automation, a useful skill in many real-world tasks.

Self-Check

"What if we copy only a single large file instead of many small files? How would the time complexity change?"

Practice

(1/5)
1. What does the cp command do in Linux?
easy
A. Deletes files or directories permanently
B. Copies files or directories from one location to another
C. Moves files or directories to a new location
D. Lists files and directories in the current folder

Solution

  1. Step 1: Understand the purpose of cp

    The cp command is used to copy files or directories, not to delete or move them.
  2. Step 2: Compare with other commands

    Deleting is done by rm, moving by mv, and listing by ls. So cp copies files or directories.
  3. Final Answer:

    Copies files or directories from one location to another -> Option B
  4. Quick Check:

    cp = copy files/directories [OK]
Hint: Remember: cp = copy files or folders [OK]
Common Mistakes:
  • Confusing cp with mv (move)
  • Thinking cp deletes files
  • Mixing cp with ls (list)
2. Which of the following is the correct syntax to copy a directory named docs and all its contents to backup?
easy
A. cp -r docs backup
B. cp -d docs backup
C. cp docs backup
D. cp -f docs backup

Solution

  1. Step 1: Identify the option to copy directories recursively

    The -r option tells cp to copy directories and their contents recursively.
  2. Step 2: Check other options

    -d is for preserving links, -f forces overwrite but doesn't copy directories recursively, and no option copies only files.
  3. Final Answer:

    cp -r docs backup -> Option A
  4. Quick Check:

    Use -r to copy folders [OK]
Hint: Use -r to copy folders and contents [OK]
Common Mistakes:
  • Omitting -r when copying directories
  • Using -d or -f incorrectly
  • Assuming cp copies folders without options
3. What will be the output of the following commands if file1.txt exists and file2.txt also exists?
cp file1.txt file2.txt
cat file2.txt
medium
A. Both files will be merged and displayed
B. Error: file2.txt already exists, copy fails
C. file2.txt remains unchanged, contents of file1.txt not copied
D. Contents of file1.txt will overwrite file2.txt, then displayed

Solution

  1. Step 1: Understand default behavior of cp

    By default, cp overwrites the destination file if it exists without warning.
  2. Step 2: Analyze the commands

    cp file1.txt file2.txt copies file1.txt over file2.txt, replacing its contents. Then cat file2.txt shows the new contents (from file1.txt).
  3. Final Answer:

    Contents of file1.txt will overwrite file2.txt, then displayed -> Option D
  4. Quick Check:

    cp overwrites files by default [OK]
Hint: cp overwrites existing files unless told otherwise [OK]
Common Mistakes:
  • Expecting error if destination exists
  • Thinking files merge on copy
  • Assuming cp refuses overwrite
4. You run cp -r myfolder backup/ but get an error: cp: omitting directory 'myfolder'. What is the likely cause?
medium
A. You used -r but the command was typed incorrectly
B. The destination folder 'backup/' does not exist
C. You forgot the -r option to copy directories
D. You ran cp without -r option on a directory

Solution

  1. Step 1: Understand the error message

    The error 'omitting directory' happens when cp tries to copy a directory without the recursive -r option.
  2. Step 2: Check the command given

    The question says you ran cp -r myfolder backup/ but error suggests -r was missing or command was different.
  3. Final Answer:

    You forgot the -r option to copy directories -> Option C
  4. Quick Check:

    Missing -r causes 'omitting directory' error [OK]
Hint: Always use -r to copy directories [OK]
Common Mistakes:
  • Assuming destination folder missing causes this error
  • Typing -r incorrectly but not noticing
  • Ignoring error message meaning
5. You want to copy all files and folders from project/ to backup/, but only if the files in backup/ are older than those in project/. Which command achieves this?
hard
A. cp -ru project/ backup/
B. cp -r project/ backup/
C. cp -rf project/ backup/
D. cp -ri project/ backup/

Solution

  1. Step 1: Understand the options

    -r copies directories recursively, -u copies only when source is newer than destination, -f forces overwrite, -i prompts before overwrite.
  2. Step 2: Choose the correct combination

    To copy directories and update only newer files, use -ru. This copies recursively and updates only if source is newer.
  3. Final Answer:

    cp -ru project/ backup/ -> Option A
  4. Quick Check:

    Use -ru to copy recursively and update only newer files [OK]
Hint: Use -ru to copy folders and update only newer files [OK]
Common Mistakes:
  • Using -r alone copies all files regardless of age
  • Using -f overwrites without checking timestamps
  • Using -i prompts but doesn't check file age
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