SPLIT(1)
๐ SPLIT(1) ๐
okay bestie, welcome to the split page from the User Commands manual โ yes it's the one that โจ slices your files into lil baby pieces โจ and honestly? iconic behaviour. let's get into it ๐
๐ธ NAME ๐ธ
split โ split a file into pieces. that's it. that's the whole job. and it ate ๐
๐ฆ SYNOPSIS ๐ฆ
split [OPTION]... [FILE [PREFIX]]
โจ DESCRIPTION โจ
so basically: it outputs pieces of FILE to PREFIXaa, PREFIXab, ... and so on forever until your file runs out. the default size is 1000 lines, and the default PREFIX is 'x'. no cap ๐ซถ
if you give it no FILE, or if FILE is -, it reads from standard input. shy king behaviour, we love it ๐
real talk: mandatory arguments to long options are also mandatory for the short options. that's not a vibe, that's a rule ๐
๐ OPTIONS ๐
-a,--suffix-length=Nโ generate suffixes of length N (default2)--additional-suffix=SUFFIXโ append an additional SUFFIX to file names-b,--bytes=SIZEโ put SIZE bytes per output file-C,--line-bytes=SIZEโ put at most SIZE bytes of records per output file-dโ use numeric suffixes starting at0, not alphabetic--numeric-suffixes[=FROM]โ same as-d, but allow setting the start value-xโ use hex suffixes starting at0, not alphabetic--hex-suffixes[=FROM]โ same as-x, but allow setting the start value-e,--elide-empty-filesโ do not generate empty output files with-n--filter=COMMANDโ write to shell COMMAND; file name is$FILE-l,--lines=NUMBERโ put NUMBER lines/records per output file-n,--number=CHUNKSโ generate CHUNKS output files; see explanation below ๐-t,--separator=SEPโ use SEP instead of newline as the record separator;'\0'(zero) specifies the NUL character-u,--unbufferedโ immediately copy input to output with-n r/...--verboseโ print a diagnostic just before each output file is opened--helpโ display this help and exit--versionโ output version information and exit
๐ง THE SIZE ARGUMENT ๐ง
the SIZE argument is an integer plus an optional unit (example: 10K is 10*1024). units are:
K,M,G,T,P,E,Z,Y,R,Qโ these are powers of 1024KB,MB, ... โ these are powers of 1000
and yes, binary prefixes work too: KiB=K, MiB=M, and so on. pick your fighter, they're all valid ๐
๐ CHUNKS may be:
Nโ split intoNfiles based on size of inputK/Nโ outputKth ofNto standard outputl/Nโ split intoNfiles without splitting lines/recordsl/K/Nโ outputKth ofNto standard output without splitting lines/recordsr/Nโ like'l'but use round robin distributionr/K/Nโ likewise but only outputKth ofNto standard output
โ ๏ธ heads up bestie:-n(except-nr) will buffer to$TMPDIR, defaulting to/tmp, if the input size cannot easily be determined. it's giving "i need a lil scratch space, don't perceive me" ๐
๐ AUTHOR ๐
Written by Torbjorn Granlund and Richard M. Stallman. legends fr fr ๐
๐ REPORTING BUGS ๐
- Report bugs to:
<bug-coreutils@gnu.org>. - Report any translation bugs to:
<https://translationproject.org/team/>. - GNU coreutils home page:
<https://www.gnu.org/software/coreutils/> - General help using GNU software:
<https://www.gnu.org/gethelp/>
โญ COPYRIGHT โญ
Copyright ยฉ 2026 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. (yes that's the dramatic part, don't skip it ๐ญ)
๐ฆ SEE ALSO ๐ฆ
- Full documentation
<https://www.gnu.org/software/coreutils/split> - or available locally via:
info '(coreutils) split invocation'
and that's the whole page, bestie!! this was GNU coreutils 9.12, dated September 2026 โ go forth and split responsibly ๐โจ๐๐ฆ
๐ฆ where this page comes from
- arch rolling: coreutils 9.12-2 ยท GPL-3.0-or-later AND GFDL-1.3-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms