Bird
Raised Fist0
Linux CLIscripting~5 mins

mv (move and rename) in Linux CLI - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: mv (move and rename)
O(1)
Understanding Time Complexity

When using the mv command to move or rename files/directories, it's helpful to understand how the time it takes grows as the number of files or size changes.

We want to know how the command's work changes when moving one file versus many files in a folder. Key factor: whether source and destination are on the same filesystem.

Scenario Under Consideration

Analyze the time complexity of the following mv command usage (assuming same filesystem).

mv source.txt destination.txt

mv folder1/ folder2/

This moves or renames a single file or an entire folder to a new location or name.

Identify Repeating Operations

Look at what the command does repeatedly.

  • Primary operation: Single rename(2) system call to update directory entry.
  • How many times: Once, regardless of the number of files inside directories.

Note: mv uses rename() if source and dest are on the same filesystem (fast). Otherwise, it copies all contents (slow, O(n)).

How Execution Grows With Input

As the number of files grows, the work stays constant (for same filesystem).

Input Size (n)Approx. Operations
10 files1 rename operation
100 files1 rename operation
1000 files1 rename operation

Pattern observation: The time is constant, independent of the number of files (same filesystem).

Final Time Complexity

Time Complexity (same filesystem): O(1)

Time Complexity (different filesystems): O(n) where n is total data size.

This means the time is constant for typical same-disk moves.

Common Mistake

[X] Wrong: "Moving a folder always takes time proportional to the number/size of files inside."

[OK] Correct: On the same filesystem, mv just updates the parent directory's entry (atomic rename), independent of contents.

Interview Connect

Understanding mv's behavior (O(1) vs O(n)) shows knowledge of filesystems, syscalls, and efficiency in scripting/automation.

Self-Check

What if we moved files across different disks instead of within the same disk? How would the time complexity change?

Answer: Becomes O(n) as it recursively copies all contents then deletes source.

Practice

(1/5)
1. What does the mv command do in Linux?
easy
A. Copies files and folders
B. Lists files and folders
C. Deletes files and folders
D. Moves or renames files and folders

Solution

  1. Step 1: Understand the purpose of mv

    The mv command is used to move files or folders from one location to another or to rename them.
  2. Step 2: Compare with other commands

    Unlike cp which copies, or rm which deletes, mv changes the location or name without duplicating.
  3. Final Answer:

    Moves or renames files and folders -> Option D
  4. Quick Check:

    mv = move or rename [OK]
Hint: Remember: mv = move or rename files [OK]
Common Mistakes:
  • Confusing mv with cp (copy)
  • Thinking mv deletes files
  • Assuming mv lists files
2. Which of the following is the correct syntax to rename a file old.txt to new.txt using mv?
easy
A. mv old.txt new.txt
B. mv new.txt old.txt
C. mv -r old.txt new.txt
D. mv old.txt -n new.txt

Solution

  1. Step 1: Understand basic mv syntax

    The syntax is mv source destination. To rename, source is old name, destination is new name.
  2. Step 2: Check each option

    mv old.txt new.txt correctly uses mv old.txt new.txt. mv new.txt old.txt reverses source and destination. Options A and D use invalid options.
  3. Final Answer:

    mv old.txt new.txt -> Option A
  4. Quick Check:

    mv source destination = rename [OK]
Hint: Syntax: mv oldname newname to rename [OK]
Common Mistakes:
  • Swapping source and destination
  • Using invalid options like -r or -n
  • Confusing mv with cp syntax
3. Given the commands:
mkdir testdir
touch file1.txt
mv file1.txt testdir/
What will be the result?
medium
A. Error: testdir does not exist
B. file1.txt is moved inside testdir folder
C. A new file named testdir is created
D. file1.txt is renamed to testdir

Solution

  1. Step 1: Create directory and file

    mkdir testdir creates a folder named testdir. touch file1.txt creates an empty file named file1.txt.
  2. Step 2: Move file into directory

    mv file1.txt testdir/ moves file1.txt into the folder testdir, keeping the same name.
  3. Final Answer:

    file1.txt is moved inside testdir folder -> Option B
  4. Quick Check:

    mv file to folder = move inside folder [OK]
Hint: mv file folder/ moves file inside folder [OK]
Common Mistakes:
  • Thinking mv renames file to folder name
  • Assuming mv creates new files
  • Believing error occurs if folder exists
4. What is wrong with this command if you want to rename file.txt to document.txt but get an error?
mv file.txt document.txt/
medium
A. Trailing slash after document.txt treats it as a directory
B. Missing -r option to rename files
C. Source file does not exist
D. mv cannot rename files

Solution

  1. Step 1: Analyze the command

    The command has document.txt/ with a trailing slash, which means it expects a directory named document.txt.
  2. Step 2: Understand error cause

    If document.txt is not a directory, mv will error because it cannot move file.txt into a non-existent directory.
  3. Final Answer:

    Trailing slash after document.txt treats it as a directory -> Option A
  4. Quick Check:

    Trailing slash means directory, causes error if not directory [OK]
Hint: No slash after filename when renaming [OK]
Common Mistakes:
  • Adding slash after new filename
  • Thinking -r is needed to rename
  • Assuming mv cannot rename files
5. You want to move all .txt files from folder1 to folder2 but avoid overwriting existing files in folder2. Which command should you use?
hard
A. mv -f folder1/*.txt folder2/
B. mv folder1/*.txt folder2/
C. mv -i folder1/*.txt folder2/
D. mv -r folder1/*.txt folder2/

Solution

  1. Step 1: Understand the goal

    You want to move all .txt files but be prompted before overwriting existing files in folder2.
  2. Step 2: Choose correct option

    The -i option asks for confirmation before overwriting. mv -i folder1/*.txt folder2/ uses mv -i correctly. mv folder1/*.txt folder2/ moves without prompt. mv -f folder1/*.txt folder2/ forces overwrite. mv -r folder1/*.txt folder2/ is invalid for files.
  3. Final Answer:

    mv -i folder1/*.txt folder2/ -> Option C
  4. Quick Check:

    Use -i to prompt before overwrite [OK]
Hint: Use mv -i to confirm before overwrite [OK]
Common Mistakes:
  • Using -f which forces overwrite
  • Forgetting -i and overwriting silently
  • Using -r which is for directories
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