You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Stata脚本重运行时硬链接未更新的问题排查与解决求助

Stata脚本重运行时硬链接未更新的问题排查与解决求助

大家好,我遇到了一个硬链接同步的问题,想请教各位前辈:

我在一个Stata脚本的输出文件和另一个脚本的输入文件之间创建了硬链接,原本期望运行第一个脚本更新输出文件时,目标链接文件也能同步更新,但实际情况是目标文件完全没变化。

最开始我的文件夹放在Dropbox里,以为是云同步的问题,就把整个文件夹移到了本地系统,但问题还是没解决。我之前看到过资料说,有些程序保存文件更新时会先删除旧文件再新建一个,这种操作会破坏硬链接,所以我怀疑是不是Stata的保存机制导致的,但不确定,想问问有没有人知道原因和解决办法?

我创建硬链接的命令:

C:\Users\[File Path]\Tasks_EMOP>mklink /H "C:\Users\[Path]\Consumption_By_Season_Cleaning\Input\emop_despenses_2011_2019_cl.dta" "C:\Users\[File Path]\Appending_Raw_Datasets\Output\emop_despenses_2011_2019_cl.dta"

保存输出文件的Stata脚本片段:

* Geographical info

rename Region, lower

label var region "Region"

label define REGION 8 "Kidal", modify

rename Cercle circle

label var circle "Circle" // What's this?

rename Arrond borough

label var borough "Borough"

rename Commune town

label var town "Town"

rename Milieu urban

recode urban (2=0)

label def MILIEU 0 "Rural", modify

label var urban "Urban or rural"

egen tot_exp = rowtotal(consom_total_s1 consom_total_s2 consom_total_s3 consom_total_s4), missing

label var tot_exp "Total HH expenditure (CFA)"

*keep hhid year cluster region circle borough town urban tot_exp taille_men

* For 2014 and 2016 circle, borough, and town are completely missing

preserve

use "$input/emop_indivitus_2011_2019_cl.dta", clear

keep iid hhid year region circle borough town

collapse (firstnm)  region circle borough town, by(hhid year)

keep if year == 2011 | year == 2013 | year == 2014 | year == 2016

tempfile geo_vars

save `geo_vars'

restore

merge 1:1 hhid year using `geo_vars', update replace

drop _merge

* For R users

gen region_id = region

gen circle_id = circle

gen borough_id =  borough

gen town_id = town

* Check duplicates

duplicates report hhid cluster region circle borough town year // None

rename hhid idmenage

save "$output/emop_despenses_2011_2019_cl.dta", replace

// save "C:\[filepath]\Tasks_EMOP\Consumption_By_Season_Cleaning\Input\emop_despenses_2011_2019_cl.dta", replace

文件位置截图说明:

  • 原始文件位置截图:可见Appending_Raw_Datasets/Output目录下的emop_despenses_2011_2019_cl.dta文件
  • 目标文件位置截图:可见Consumption_By_Season_Cleaning/Input目录下的同名文件,但更新后两者内容不同步

想请教大家:

  • Stata的save, replace命令是不是真的会删除旧文件再创建新文件?这是不是导致硬链接失效的原因?
  • 如果确实是这个原因,有没有什么办法能让硬链接保持有效,或者有没有其他替代方案实现两个脚本间文件的自动同步?

备注:内容来源于stack exchange,提问作者Matt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 11:17:59