This is one of the most common ways a QuarkXPress archive appears to die, and one of the least serious. The files are usually fine. What has been lost is not the work — it is the label that told the computer what the work was.

Why the extension was never there in the first place

Classic Mac OS, the system these documents were made on, did not use file extensions. It kept two four-character codes in the file's metadata instead: a type code saying what kind of file it was, and a creator code saying which application owned it. For QuarkXPress those were XDOC with creator XPR3 for a document, and XTMP with creator XPR3 for a template.

Because the system knew, nobody had to type .qxd. Files were called things like Issue 47 pp12-13 and double-clicking them just worked. That was a genuinely nicer way to live, right up until the day the files had to leave the Mac.

What actually got stripped, and when

Those codes lived alongside a second stream attached to each file, the resource fork. Nothing outside the Apple world understands forks. So they are lost, silently, whenever a file passes through somewhere that cannot carry them:

  • A USB stick or external drive formatted FAT32 or exFAT — the most common culprit by a distance.
  • A Windows or Linux file server the studio moved to in 2004.
  • Email, most cloud sync, and most zip tools that were not made for Mac.
  • A round trip: Mac to PC and back again. It looks like the same file. It is not carrying the same metadata.

No warning was ever shown. The files copied "successfully". The identity just quietly did not come with them.

Why macOS now says "Unix Executable File"

Modern macOS works out what a file is from its extension and its metadata. With no extension and no type code, it falls back on the file's permission bits — and if the executable bit is set, Finder labels it a Unix Executable File and offers to run it in Terminal.

Why would a page layout have an executable bit? Because FAT32 and exFAT volumes have no concept of Unix permissions, so macOS mounts everything on them as executable. Your document picked the bit up crossing a USB stick, years ago, and kept it.

It is a cosmetic diagnosis by a system that has run out of clues. It says nothing about the contents.

Work on copies, always. Everything in this guide is safe, but some of it writes metadata back to the file. Duplicate the folder, put the originals somewhere you will not touch, and do all of this on the duplicates. You can repeat a fix. You cannot un-ruin an original.

Step 1 — check what actually survived

Before fixing anything, find out whether there is anything to fix. Look at the first bytes of the file. A legacy QuarkXPress document begins with a recognisable marker: MMXPR3 if it was written on a Mac, IIXPR3 if on a PC.

In Terminal, on a copy:

xxd -l 32 "/path/to/Issue 47 pp12-13"

Read the printable characters in the right-hand column. If the marker is there, the QuarkXPress data made the journey — which is the single most reassuring thing you can learn today. If nothing sensible appears, check the file size before despairing; a few hundred bytes usually means an interrupted copy rather than a fork problem. Full detail on reading these bytes, and on telling versions apart, is in which version of QuarkXPress made this file?

Step 2 — see whether the type codes are still attached

If the file has stayed on Mac volumes its whole life, the codes may be intact and simply not being used. Two commands worth running:

mdls -name kMDItemContentType "/path/to/file"

xattr -l "/path/to/file"

In the second, com.apple.FinderInfo is where the type and creator codes live, and com.apple.ResourceFork is the fork itself. If you see them, nothing was stripped. If you see nothing, they are gone — and that is normal, and usually survivable.

If you have Apple's command line developer tools installed, GetFileInfo -t and GetFileInfo -c will print the type and creator directly.

Step 3 — give the file back an identity

Two fixes, in increasing order of effort. Try the first one on one file before doing anything to four hundred.

Add the extension

Rename a copy to end in .qxd. This is the entire fix in a great many cases: with an extension present, Windows will offer the file in Open dialogs and modern applications will stop refusing to look at it. If .qxd does not work, try .qxp — that is the extension QuarkXPress used from version 6 onwards, and a file from 2004 may well be a project rather than a document.

Clear the executable bit

If macOS is still insisting the file is executable, remove the bit on your copies:

chmod -x "/path/to/file"

Or for a whole folder of them: chmod -R -x+X /path/to/folder — which strips the executable bit from files while leaving directories traversable.

Restore the type and creator codes (optional)

If you are going to work in a classic environment or an old QuarkXPress install that keys off the codes, you can put them back with Apple's SetFile tool:

SetFile -t "XDOC" -c "XPR3" "/path/to/file"

Use XTMP instead of XDOC if the file was a template. This writes metadata, so — once more — copies only.

Step 4 — the platform trap that catches people at the end

One more thing to know before you feed a rescued Mac file into a converter, because it wastes an afternoon otherwise: converting a Mac-authored QuarkXPress document on Windows is reported repeatedly, in Adobe's own community forums, to produce scrambled and unreadable text in older InDesign releases. If a file's first bytes say MMXPR3, convert it on a Mac if you possibly can.

This is one of the reasons we built our own reader to handle both byte orders directly rather than assuming one. It should not be the customer's problem which decade's hardware wrote the file.

Doing this to a whole archive

If it is one shoebox, work file by file. If it is a studio's twenty years of issues, a little order helps enormously:

  1. Copy the whole lot to a Mac-format volume first (APFS or HFS+), before doing anything else. Every further step you take on a FAT or exFAT drive risks losing something else.
  2. Take a checksum list of the originals — find . -type f -exec shasum {} \; redirected to a file. It costs a minute and it is how you show later that nothing you did changed a source file.
  3. Sample before you sweep. Test the extension fix on five files spanning different years before scripting it across everything.
  4. Record the version per file as you go. It determines what can be done with each one.

That last point is where this stops being a fiddly-file problem and becomes a preservation project. If you are looking at hundreds of documents, read archiving a QuarkXPress back catalogue next.

Where our tool fits, honestly. QuarkXPress Rescue reads QuarkXPress 3.1–4.1 documents from either platform — big-endian Mac-authored files and little-endian Windows-authored files alike — locally and read-only, and recovers the page layout geometry, your authored text with its font, point size, bold/italic and colour runs, and the pictures stored inside the file it can positively identify. It does not repair resource forks, restore type codes or undo a truncated copy; those are the jobs above, and they are free. What it does is read the file once it is readable, and get the layout, the words and the pictures out without you needing QuarkXPress. It runs on Windows 10 and 11 (64-bit) and on macOS 10.15 or later (Apple silicon and Intel Macs); one purchase covers both.