代替データストリーム(ブロックの解除)

dirコマンドで代替データストリームを持つファイルの確認

dir(cmd.exe)

 C:\Users\foo\Downloads>dir /r
 
 2015/05/10  12:44    <DIR>          .
 2015/05/10  12:44    <DIR>          ..
 2015/05/10  12:43           101,162 dotjs-master.zip
                                 26 dotjs-master.zip:Zone.Identifier:$DATA

Get-Item(PowerShell)

 PS Downloads> Get-Item * -Stream *
 
 Stream                   Length
 ------                   ------
 :$DATA                   101162
 Zone.Identifier              26

上の例ではdotjs-master.zipが代替データストリームを持っているのが確認出来る。

代替データストリームの削除

PowerShell

 Remove-Item .\dotjs-master.zip -Stream Zone.Identifier

代替データストリームの書き込み

 CMD> echo "OK" > foo.txt:data1.txt
 CMD> notepad.exe foo.txt:data1.txt
  • ファイル(ここではfoo.txt)があるとして、そのファイル名に:(コロン)でつなげて代替データストリーム名(ここではdata1.txt)を指定する。
  • 上のようにコマンドプロンプトやメモ帳などで書き込みできる。

代替データストリームの全文検索

 PS> $files = dir -r -file *
 PS> $files | ? { gc -Path $_ -Stream "data1.txt" -ea silentlycontinue | select-string "OK" }
  • ここでは代替データストリーム名data1.txtに"OK"という文字列が存在するファイルを検索している。

代替データストリームの周辺知識

  • ファイルでもディレクトリでも代替データストリームを持つことが出来る。
  • 代替データストリームがあるのはNTFSだけ。FATへコピーすると代替データストリームは消える。
  • ファイルエクスプローラーでコピーすると代替データストリームは保持される。それ以外のプログラムの場合、例えばRobocopy.exeは/dcopy:daオプションで保持される。

参考

http://www.atmarkit.co.jp/ait/articles/1407/11/news111.html


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2016-04-22 (金) 03:43:08