On název "Atribut" je v případě Windows zavádějící. Tam se to jmenuje Stream (velmi pěkný popis) a lze tam narvat cokoli, o jakékoli velikosti a může jich být více.
Zákeřné je to v tom, že standardní nástroje a většina správců souborů je vůbec neukazuje a ani se nemění udávaná velikost původního souboru (což je zle z principu, jak se ukládají OK).
Příklad: Vytvořím si textový soubor test.txt s obsahem 123456
C:\Temp>echo 123456 >test.txt
Velikost má 9 byte:
C:\Temp>dir
27.12.2018 06:21 9 test.txt
Obsah je očekávaný (na konci je mezera + CRLF):
0000000000: 31 32 33 34 35 36 20 0D │ 0A 123456
Teď do streamu k tomuto souboru, který si pojmenuji "stream1", přidám např. výpis z nslookup:
C:\Temp>nslookup portal.gov.cz >test.txt:stream1
Ještě třeba do streamu s názvem "stream2" přidám obsah www.root.cz:
C:\Temp>D:\Programy\#Internet\CUrl\curl.exe www.root.cz >test.txt:stream2
Velikost souboru se ale stále nezměnila, datum zápisu ano:
C:\Temp>dir
27.12.2018 06:24 9 test.txt
Když se na to podívám nějakým nástrojem (např. Streams ze Sysinternals nebo AlternateStreamView or NirSoft), který se streamy umí pracovat, tak je ukáže:
C:\Temp>D:\Programy\#System\SysInternals\streams64.exe C:\Temp\test.txt
streams v1.60 - Reveal NTFS alternate streams.
Copyright (C) 2005-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
C:\Temp\test.txt:
:stream1:$DATA 214
:stream2:$DATA 305
Takže je vidět, že v souboru test.txt jsou dva streamy, stream1 s velikostí 214 byte a stream2 s velikostí 305 byte.
Obsah souboru se ale pro standardní nástroje nezměnil:
C:\Temp>more test.txt
123456
Vypíšu si obsah streamů.
stream1:
C:\Temp>more <test.txt:stream1
Server: dynamic-2a00-1008-81d8-1ac2-0000-0000-0000-0001.ipv6.broadband.iol.cz
Address: 2a00:1018:81dc:1aba::1
Name: gov.cz
Addresses: 2a03:2320:b944:1c60::96
185.68.28.96
Aliases: portal.gov.cz
stream2 (před konce tagů jsem dal #, aby to root.cz nechápal jako řídící tagy):
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"#>
<html#><head#>
<title#>301 Moved Permanently</title#>
</head#><body#>
<h1#>Moved Permanently</h1#>
<p#>The document has moved.... (zkráceno)
Klidně mohu vytvořit soubor s velikostí 0 byte, ve kterém nic nebude a vše bude "schované" jen ve streamech. Ale streamy přežijí pouze v rámci NTFS. Když se soubor se streamy překopíruje např. na Google Drive (nebo na flash s FAT32), tak o ně přijde.