从高级别的角度来看(意味着只关心结果和界面,而不是实现),指向目录的NTFS重分析点与指向目录的符号链接之间的行为有何不同(如果有的话)同一目录?
它们是否在堆栈中的同一级别上解析,或者在另一个可以解析的某个时间(如启动时)是否可能无法解析?
(我知道符号链接也适用于文件,但我在这里询问目录的区别.)
我们希望在多个项目中使用相同的构建系统.我有一个工作早午餐配置文件,我想放在一个git子模块中,以便可以在多个项目中引用该子模块,并且更改很容易传播(比复制和粘贴更不易碎,并设置brunch-config.js的权威来源) .
将brunch-config.js放在git子模块中会导致我的文件夹结构如下所示:
WebApp // git root
|---Brunch-Build-System // git submodule
| |---brunch-config.js
|---node_modules
|---source // all the source code I want compiled
Run Code Online (Sandbox Code Playgroud)
早午餐运行假设brunch-config.js将与正在编译的源相同或更高.在此设置中,情况并非如此.我已经尝试修改我的brunch-config.js使用相对路径无济于事.这是我files目前的Brunch配置块,没有任何相对路径尝试:
files: {
javascripts: {
joinTo: {
'js/lib.js': /^(?!source\/)/
},
entryPoints: {
'source/scripts/app.jsx': {
'js/app.js': /^source\//
},
}
},
stylesheets: {joinTo: 'css/core.css'}
}
Run Code Online (Sandbox Code Playgroud)
如果上面给出了所需的文件夹结构,我如何修改它以使用相对路径?这甚至可能吗?
我正在运行os.walk(),"C:\Users\confusedDev\Documents"我看到["My Music", "My Pictures"...]返回为子目录,但它们实际上并未被访问。经过一番研究,我发现它们实际上是Windows 中的连接点。
我的理解是 junction 是一个指向目录的符号链接,在 期间默认会被忽略os.walk(),但以下测试让我失败了
>>> os.path.islink("C:\\Users\\confusedDev\\Documents\\My Pictures")
False
Run Code Online (Sandbox Code Playgroud)
嗯...怎么os.walk()知道“C:\Users\confusedDev\Documents\My Pictures”是“C:\Users\confusedDev\Pictures”的符号链接并且需要跳过?我想调用相同的 api...目前,我的解决方法逻辑只是假设如果目录被 跳过os.walk(),那么它是一个结点
在 Linux/Unix 中,创建符号链接的命令称为 ln。用户不需要任何特殊权限即可使用它。在 Windows(从 7 开始)中,等效项称为 mklink。它可以从 cmd 提示符发出,但用户需要是 admin。
我发现拥有符号链接非常有用,我可以重命名这些链接以获取基于同一项目的不同变体的不同代码库。
是否有类似于某种组策略的设置,允许非管理员用户使用 mklink 或者只是不允许,因为它对文件系统做了一些狡猾的事情?
编辑
非管理员用户可以使用mklink /J创建目录链接
symlink ×2
batch-file ×1
brunch ×1
cmd ×1
directory ×1
filesystems ×1
git ×1
javascript ×1
junction ×1
ntfs ×1
python ×1
reparsepoint ×1
windows ×1