Understanding the '--no-o' Option in rsync: Preserving Timestamps

Abstract: Resolve confusion about rsync --no-o by using -t to preserve file modification timestamps instead of ownership.

Created: 2026-10-07 by

To preserve file modification timestamps when synchronizing data with rsync, use the -t or --times flag. The --no-o option actually controls whether to preserve ownership (user ID) and has no effect on timestamps. By default, rsync copies timestamps, but explicit flags ensure consistent behavior across different environments.

Clarifying the Misconception About --no-o

The confusion surrounding the --no-o option often stems from a misunderstanding of how rsync handles metadata. In reality, --no-o is short for --no-owner. It tells rsync not to attempt to restore the original owner of the files during transfer. This is particularly useful when running rsync as a non-root user, where attempting to set ownership might fail with permission errors. It does not interact with file timestamps in any way. Similarly, there is a --no-g or --no-group option that prevents rsync from restoring group ownership. These options are part of a family of flags that control which attributes are preserved:
  • --owner / --no-owner: Controls user ID preservation.
  • --group / --no-group: Controls group ID preservation.
  • --perms / --no-perms: Controls permission bits preservation.
  • --times / --no-times: Controls modification time preservation.
Understanding this distinction is critical because using the wrong flag can lead to unexpected behavior, such as losing file modification dates or encountering permission denied errors due to ownership mismatches.

How to Preserve Timestamps Correctly

To ensure that file modification times are synchronized correctly between source and destination, you should use the -t or --times option. While rsync attempts to preserve timestamps by default, explicitly specifying this flag guarantees that the behavior is intentional and clear in your scripts. Here is the basic syntax for preserving timestamps:
rsync -avt /source/path/ /destination/path/
In this command:
  • -a stands for archive mode, which is equivalent to -rlptgoD. It includes recursive linking, permissions, times, group, and owner preservation.
  • -v enables verbose output, allowing you to see what files are being transferred.
  • -t explicitly ensures that modification times are preserved.
If you are concerned about ownership issues but still want to keep timestamps, you can combine -t with --no-o and --no-g:
rsync -av --no-o --no-g -t /source/path/ /destination/path/
This configuration preserves timestamps and permissions while ignoring ownership restoration, which is ideal for scenarios where the destination system has different user IDs than the source.

Why Git Ignores Timestamps

It is important to note that Git itself does not store file modification timestamps in its repository. Git tracks content changes via hashes, not timestamps. When you check out files from a Git repository, the operating system assigns the current timestamp unless you manually adjust them. Therefore, if you are syncing files from a Git working directory, the timestamps will reflect the time of checkout or last modification, not some historical Git date. Using rsync to sync these files will simply copy whatever timestamps exist on the filesystem at that moment. For more details on managing sub-directories and timestamps during rsync operations, see rsync: Not Iterating Sub-Directories - Modify Timestamp?.

Common Scenarios and Best Practices

When synchronizing large datasets or performing backups, ensuring timestamp integrity is crucial for incremental transfers. If timestamps are not preserved, rsync may re-transfer files even if their content has not changed, leading to unnecessary network traffic and storage usage. Use the --checksum option (-c) if you need to verify file integrity beyond timestamps. However, be aware that this significantly increases processing time because rsync must calculate checksums for all files before deciding what to transfer.
rsync -avc /source/path/ /destination/path/
Another best practice is to test your rsync commands with the --dry-run option (-n) before executing actual transfers. This allows you to verify which files would be affected without making any changes. For guidance on checking available space before a dry run, refer to Determining If Enough Space is Available in Destination Drive for rsync Dry Run.

Handling Permission Errors

If you encounter permission errors related to ownership, remember that only root can change file ownership. If you are not running as root, rsync will skip setting ownership unless you use --no-o. This prevents errors and allows the transfer to continue successfully, albeit without preserving the original user ID.

Verifying Your Configuration

After running an rsync command, you can verify that timestamps were preserved by comparing the output of ls -l on both the source and destination directories. Look for identical modification times in the third column of the output.
ls -l /source/path/file.txt
ls -l /destination/path/file.txt
If the times match, your configuration is working correctly. If they differ, check whether you accidentally used --no-times or if the filesystem supports timestamps accurately. Some network file systems have limited precision or may strip timestamps depending on their configuration. For insights into whether rsync behaves idempotently, meaning it produces the same result regardless of how many times it is run, read Is rsync idempotent?.

Frequently Asked Questions

Does rsync preserve timestamps by default?

Yes, rsync preserves modification times by default in archive mode (-a). However, explicitly adding -t makes your intent clear and ensures compatibility with non-standard configurations. Always verify timestamps after transfer to confirm accuracy.

What happens if I omit the -t flag?

Omitting -t typically has no effect because archive mode includes it. But if you disable archive mode with -r instead of -a, timestamps will not be preserved. This can cause files to appear newer than they are, potentially triggering unnecessary re-transfers in future syncs.

Can I preserve timestamps without preserving ownership?

Absolutely. Use --no-o and --no-g alongside -t to ignore ownership while keeping timestamps. This is common when syncing between systems with different user accounts but requiring identical file dates for backup consistency.

Why do my synced files show different timestamps after transfer?

This usually occurs if the destination filesystem does not support precise timestamps or if you used --no-times. Check the filesystem type and ensure no flags disabling time preservation are present. Also, verify that the source timestamps themselves were accurate before syncing.

Is --no-o necessary for non-root users?

It is recommended but not strictly required. Without it, rsync may log warnings or errors when trying to set ownership. Adding --no-o suppresses these messages and allows the transfer to proceed smoothly, focusing only on the data and metadata you care about.

Latest News

How to Display Output of xterm Command in Terminal Screen using Cron

Resolve the inability to display xterm output in a terminal screen from cron by redirecting logs or using wall instead of insecure X11 workarounds.

Read More
Expose Local Server on VPS Preserving Real Client IPs (OS Level)

Resolve VPS logging showing only gateway IPs by configuring reverse proxies to forward real client addresses via X-Forwarded-For headers.

Read More
How to Clear Recent Files History in Linux without Deleting Actual Files?

Clear recent files history in Linux by deleting ~/.local/share/recently-used.xbel without removing the actual files.

Read More
Best HDD Copy Strategy: Manually Syncing and Rewriting Scratch

Resolve data drift between two 4TB hard drives by using rsync with the --delete flag to manually sync and rewrite scratch data for an exact mirror.

Read More
Understanding Bash Prompt Abbreviations: An Overview

Resolve repetitive typing errors by creating and persisting Bash aliases in the .bashrc file for improved command-line efficiency.

Read More
Free Tools and Methods to Log Real-Time Performance Details in Task Manager

Log real-time CPU and memory metrics to CSV files using Windows Performance Monitor Data Collector Sets to troubleshoot system slowness.

Read More
Contact Qatar Airways Customer Service: Phone Number, Help Center, and More

Resolve urgent Qatar Airways reservation issues like flight changes and baggage claims using the US phone number +1801-855-5905 or online self-service tools.

Read More
Windows 11: Alt Codes Displaying Wrong Characters - Solutions

Resolve Windows 11 Alt codes showing wrong characters by verifying the US keyboard layout and enabling Num Lock.

Read More
Run Programs with Elevated Privileges: A Comprehensive Guide

Eliminates the need to type sudo for frequent administrative tasks by configuring .bashrc aliases or functions.

Read More
Dynamically Changing Dates in Excel Formulas Using Cells

Eliminate manual date updates in Excel by using cell references to create dynamic formulas that automatically adjust calculations when input dates change.

Read More
Granting Edit Access to a Specific Excel Sheet in an Office 365 User Email ID-Based Login

Excel Online lacks native sheet-level permissions, so users must split workbooks or use worksheet protection to isolate edit access for specific tabs.

Read More
Creating Network Load on Local Wi-Fi from One PC

Generate sustained Wi-Fi bandwidth load from a single PC using a VM SFTP server to test router stability and throughput.

Read More
Changing the Default Editor for Batch Files in Windows 11's File Explorer

Resolve the issue of batch files opening in Notepad by changing the default editor to a preferred application like VS Code.

Read More
Gain WiFi Connection Minutes Before Losing it by Changing MAC Address

Bypass MAC address filtering to restore WiFi connectivity temporarily when a device is blocked by network administrators.

Read More
Photos Folders Turned Black: Troubleshooting Picture Applications on Windows

Resolve black screens in Windows Photos by resetting the app, updating graphics drivers, and repairing system files.

Read More
Troubleshooting High CPU Temperature Values: A Step-by-Step Guide

Resolve high CPU temperatures and thermal throttling by monitoring with Speedfan, cleaning dust from cooling components, and replacing degraded thermal paste.

Read More
Make cURL establish TLS connection with CA unknown

Resolve cURL TLS connection failures with unknown or self-signed certificates by using the --insecure flag to bypass CA validation.

Read More
Troubleshooting Incorrect Network Metrics Values in Grafana, Prometheus, InfluxDB, and Telegraf

Fix incorrect network metrics in Grafana, Prometheus, InfluxDB, and Telegraf by verifying interface selection, resolving unit mismatches, and handling counter resets.

Read More
Start Another Terminal Window (cmd.exe) Windows Repair/Troubleshoot

Provides step-by-step instructions to access the Windows Command Prompt via bootable media for advanced system repair and troubleshooting.

Read More
Thinkpad P1 Gen 6: Sudden Thunderbolt 3 Dock USB-C Charging Stopped Working

Resolve sudden Thunderbolt 3 dock USB-C charging and internet failure on ThinkPad P1 Gen 6 by updating firmware, resetting the dock, and adjusting power settings.

Read More
ASUS Windows 11 Laptop: Internet Connection Issue with Hotspot

Resolve ASUS Windows 11 laptop spinning wheel issue when connecting to mobile hotspot by resetting network stack, disabling IPv6, and adjusting power settings.

Read More
Developing iOS Project with Firebase: Logging in and Sending Push Notifications

Integrates Firebase to enable secure user authentication and push notifications in iOS applications.

Read More
Troubleshooting Bash Script with Suspected Issues of Spaces, Dashes, Filenames and Quoting

Resolve Bash script failures caused by word splitting, globbing, and special characters in filenames by applying proper quoting techniques.

Read More
Populating OneDrive Folder for Local Backup without Affecting Remote Files

Prevent OneDrive from deleting remote files during Windows reinstallation by unlinking the account or using symbolic links to isolate local data.

Read More
Force First Frame as Keyframe Without Re-encoding: A Quick Solution

Resolve inaccurate seeking and playback glitches by re-encoding video to ensure the first frame is a valid keyframe.

Read More
Find Information in Database Using WSL (Ubuntu) on Windows-10

Resolve database connection issues from WSL Ubuntu on Windows 10 by configuring client tools and network access to query remote or local servers.

Read More
Configuring a New Router with Different Networks: One Family, One Guest

Resolve IP conflicts and isolate guest traffic by configuring a second router with a distinct subnet via its WAN port.

Read More
Quickly Open Multiple Stock Websites with a Single Command

Solve the problem of manually opening multiple stock research websites by creating a single command to launch them simultaneously on Windows, macOS, or Linux.

Read More
Improved Adobe Acrobat Search Experience: Access Advanced Search with Ease

Access advanced search filters like case sensitivity and regex in Adobe Acrobat by clicking More Options in the Find bar.

Read More
Port Forwarding VM via OpenVPN: A Comprehensive Guide

Configure OpenVPN server and iptables to forward specific ports from VPN clients to a virtual machine's internal IP address.

Read More
Understanding Partitions in the 1980s: A Look Back at MS-DOS and Master Boot Record

Explains how the Master Boot Record and partition table enabled MS-DOS to manage multiple disk volumes on a single physical drive.

Read More
Windows 10 Enterprise: Keyboard Not Detected in Managed Organization with Admin Privileges

Resolve Windows 10 Enterprise keyboard detection failures caused by Group Policy restrictions, driver corruption, or USB enumeration errors.

Read More
Can't Find x86_64 Versions of Applications on MacOS arm64 (M1)

Resolve missing x86_64 app issues on M1 Macs by installing Rosetta 2 and reinstalling apps as universal binaries.

Read More
How to Hide Installation Source for an Android App

Manage Android app installation source visibility by using USB transfers or file managers to reduce browser traces and isolate data via work profiles.

Read More
Connecting Momentus 4200.2 ST9808210A Hard Drive via USB Cable

Resolve inability to access Seagate Momentus 4200.2 ST9808210A hard drive by connecting it via USB using a compatible SATA-to-USB adapter and configuring the disk in Windows.

Read More