MeridianMERIDIAN

Filename

technology.filesystem.filename

A bare file name — a stem and a file extension, with no directory separators (report_final.xlsx, IMG_0042.png, archive.tar.gz). The named file entity, distinct from a path (windows_path carries separators), a URL (no scheme/host), a bare word (a real file extension), and the file's properties (representation.file.extension/file_size/mime_type).

Try a value

Filename's rule accepts it.

Reads it as report_final.xlsx

Worked samples

DuckDB 1.5.5 · finetype 0.6.66

ValueAs VARCHARextensionstem
report_final.xlsxreport_final.xlsxxlsxreport_final
IMG_0042.pngIMG_0042.pngpngIMG_0042
archive.tar.gzarchive.tar.gzgzarchive.tar
atarisy2.cppatarisy2.cppcppatarisy2

Shape

Length at least 3 characters.

Pattern
^[^\\/\r\n\t]+\.[A-Za-z0-9]{1,8}$
ValueLengthShape
report_final.xlsx17matches
IMG_0042.png12matches
archive.tar.gz14matches
atarisy2.cpp12matches
report_final-xlsx17rejected: separator swapped

Background

Origin

A filename is used to uniquely identify a computer file in a file system.[1] POSIX defines a filename as a sequence of bytes consisting of 1 to {NAME_MAX} bytes used to name a file.[2] Under POSIX, the bytes of a filename shall not contain the NUL or slash characters.[2] POSIX defines a pathname as optional beginning slash characters followed by zero or more filenames separated by slash characters.[2] POSIX gives the filenames dot and dot-dot special meaning.[2] The POSIX portable filename character set is the letters A to Z and a to z, the digits 0 to 9, and the period, underscore and hyphen-minus.[2]

Microsoft's Win32 documentation says all file systems follow the same general naming convention for an individual file: a base file name and an optional extension, separated by a period.[3] The older MS-DOS FAT file system supports a maximum of 8 characters for the base file name and 3 characters for the extension, commonly known as an 8.3 file name.[3] Wikipedia's Filename extension article says DEC's versions of the extension concept inspired later microcomputer operating systems to adopt it.[4] Wikipedia's Filename extension article says the need to condense a file's type into three characters frequently led to abbreviated extensions.[4]

FineType defines its filename type as a bare file name, a stem and a file extension, with no directory separators.[5]

Use

Windows reserves the characters <, >, :, ", /, \, |, ? and * in file names.[3] Windows documentation says not to use reserved names such as CON, PRN, AUX and NUL for the name of a file.[3] Windows documentation says NUL.txt and NUL.tar.gz are both equivalent to NUL.[3] Windows documentation says not to end a file or directory name with a space or a period, because the Windows shell and user interface do not support such names.[3] Windows documentation says not to assume case sensitivity, treating OSCAR, Oscar and oscar as the same name.[3] By default, HFS+ and APFS in macOS are case-insensitive but case-preserving.[1] Before you deduplicate a column of filenames, decide whether Report.xlsx and report.xlsx are one file or two, because the answer depends on the system the names came from. (Meridian's view)

Wikipedia's Filename extension article says more than one extension usually represents nested transformations, such as files.tar.gz.[4] Python's pathlib lists the suffixes of my/library.tar.gz as .tar and .gz.[6] Python's os.path.splitext ignores earlier periods, splitting foo.bar.exe into foo.bar and .exe.[7] Python's os.path.splitext treats leading periods of the last component as part of the root, so .cshrc has no extension.[7] Splitting on the last period is a fair default, but keep a list of compound extensions such as .tar.gz if you want archive.tar.gz grouped with other gzipped tarballs rather than with every other .gz file. (Meridian's view)

Wikipedia's Filename extension article says file extensions alone are not a reliable indicator of a file's type.[4] Wikipedia's Filename extension article says Windows File Explorer by default does not display extensions, which malicious users have exploited with names like LOVE-LETTER-FOR-YOU.TXT.vbs.[4] Treat the extension in a filename column as a claim about the file, not proof of its contents, and check the MIME type or the bytes when it matters. (Meridian's view)

Detection notes

New type (reservoir-mining sweep 2026-07-14). Sibling of windows_path — the bare file NAME, no directory. Taxonomy-live but not model-predicted (244-dim); recovered at profile time via the deterministic filename_recovery Sharpen guard. The shape validator confirms any word.word, so the curated file-extension SET (lowercase-terminal ext + letter-bearing stem) is the substance, per the Precision Principle and the ticker precedent. NO retrain (0096).

Use it

CLI · DuckDB
$ finetype infer -i "report_final.xlsx" --mode column
→ technology.filesystem.filename

SELECT ft_infer('report_final.xlsx');
-- → 'technology.filesystem.filename'
Cast expression
CAST({col} AS VARCHAR)

Schema

https://meridian.online/schemas/technology.filesystem.filename · Frictionless type string

finetype taxonomy technology.filesystem.filename -o json-schema

Aliases

filenamefile_namefname

Type Registry