Что такое эквивалент Tcl для UNIX «cp -pL»? Не могу найти его в file command описаниеTcl эквивалент для команды UNIX «cp -pL»
2
A
ответ
2
Для одного файла: a) Получить реальный путь к файлу. b) Скопируйте его. c) Установите атрибуты, время модификации и время доступа.
К сожалению, не было способа установить время изменения (время разработки в Windows).
set fn sourcefn
set tofn targetfn
set nfn [file normalize [file readlink $fn]]
file copy -force $nfn $tofn
foreach {key} [list attributes mtime atime] {
set temp [file $key $nfn]
file $key $tofn {*}$temp
}
Это чистое решение Tcl, которое будет работать на Unix, Mac OS X и Windows. Конечно, вы можете просто сделать:
exec cp -pLf $from $to
Ссылки: file
+0
Отличный ответ. Мне особенно нравится, что использование 'exec' в порядке. –
Краткий справочник: '-p' для сохранения метаданных,' -L' для последующей симлинками (то есть, не копируя ссылку как ссылку, а скорее на что он указывает) в рекурсивном режиме. –