Reversing file and folder listings in Linux helps when the last entries matter more than the first ones, such as checking rotated logs, reviewing the oldest items in a working directory, or scanning a deployment tree from the bottom up.

The ls command sorts directory entries by name by default, and -r reverses whichever sort order is currently active. The same switch can therefore invert the normal name order, a time-based listing from -t, or another supported sort mode without changing anything on disk.

Name ordering still depends on the current locale, so the same filenames can appear in a different sequence on two hosts with different LC_COLLATE settings. Reverse mode also depends on sorting still being enabled: -U turns sorting off, so pairing it with -r does not produce a reversed view.

Steps to reverse file and folder listings in Linux:

  1. List the target directory in the default name order first so the reversed result is easy to compare.
    $ ls -1 /srv/reverse-demo
    alpha.txt
    archive
    logs
    zulu.txt

    -1 prints one entry per line, which makes the order obvious and keeps the output easy to pass into other commands.

  2. Reverse the current name sort with -r.
    $ ls -1r /srv/reverse-demo
    zulu.txt
    logs
    archive
    alpha.txt

    The -r flag reverses the active sort key rather than creating a new one. With the default name sort, that means reverse alphabetical order.

  3. Combine -t and -r when the goal is to see the oldest entries first instead of the newest.
    $ ls -lt --time-style=long-iso /srv/reverse-demo
    total 16
    -rw-r--r-- 1 root root   33 2026-04-14 09:03 zulu.txt
    drwxr-xr-x 2 root root 4096 2026-04-14 09:02 logs
    drwxr-xr-x 2 root root 4096 2026-04-14 09:01 archive
    -rw-r--r-- 1 root root    6 2026-04-14 09:00 alpha.txt
    
    $ ls -ltr --time-style=long-iso /srv/reverse-demo
    total 16
    -rw-r--r-- 1 root root    6 2026-04-14 09:00 alpha.txt
    drwxr-xr-x 2 root root 4096 2026-04-14 09:01 archive
    drwxr-xr-x 2 root root 4096 2026-04-14 09:02 logs
    -rw-r--r-- 1 root root   33 2026-04-14 09:03 zulu.txt

    -t sorts by modification time, newest first, and -r flips that order so the oldest entries appear first.

  4. Use sort -r only when the listing has already been reduced to plain text and the reversed text order is what matters.
    $ ls -1 /srv/reverse-demo | sort -r
    zulu.txt
    logs
    archive
    alpha.txt

    sort -r reverses the text lines it receives. It does not understand file metadata the way ls -r does, so it is better suited to pipelines than to full directory listings.

  5. Force stable bytewise name ordering when locale-specific collation would otherwise change the result between hosts or scripts.
    $ LC_ALL=C ls -1r /srv/reverse-demo
    zulu.txt
    logs
    archive
    alpha.txt

    Setting LC_ALL=C makes ls use the simple C locale ordering instead of language-specific collation rules.

  6. Avoid combining -r with -U when a predictable reverse order is required.
    $ ls -1U /srv/reverse-demo
    logs
    alpha.txt
    zulu.txt
    archive
    
    $ ls -1Ur /srv/reverse-demo
    logs
    alpha.txt
    zulu.txt
    archive

    -U disables sorting, so -r has no effect in that mode. Use the default name sort or an explicit sort key such as -t when the order must be reversed.