0

tcl プログラミングでファイルをコピーしたいのですが、これらのファイルはリンクされています。これはコードです:

if { [file type $sfile] == "link" } {
        set fget [file readlink $sfile ]
         }        
      file copy -force $fget $dir

$sfile がリンクの場合に機能します。リンクのソース ファイルもリンクである場合、これは機能しません。

シンボリックリンクを再帰的にトレースするにはどうすればよいですか?

4

2 に答える 2

0

こんにちは私は以前にこれを使用しました。私たちに与えられた入力はリンクのリンクだったので、手順を使用して実際のファイルを見つけました。これがあなたを助けるかどうか私に知らせてください。

proc get_real_link {linkfile} {    
    if {[file type $linkfile] eq "link"} {
       set tempfile [file readlink $linkfile]
    }
    if {[file type $tempfile] eq "link" } {
       get_real_link $tempfile
    } else {
       return $tempfile
    }
}

set realFile [get_real_link "new1.txt"]

#puts "$realFile" 
file copy -force $realFile $dir

前提: new1.txt は最初のリンク ファイルです。A->B B->C C->A のような循環リンクはありません。

于 2013-05-16T11:36:06.630 に答える