标签: symlink-traversal

Docker在上下文之后遵循符号链接

另一个Docker符号链接问题.我有一堆文件要复制到我的所有Docker构建中.我的目标结构是:

parent_dir
    - common_files
        - file.txt
    - dir1
        - Dockerfile  
        - symlink -> ../common_files
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我想在我在dir1中构建docker时复制file.txt.但我不想保留file.txt的多个副本.根据这个链接,从docker版本0.10开始,docker build必须

按照容器根目录中的符号链接获取ADD构建说明.

但是当我在Dockerfile中使用这些行中的任何一行构建时,我都没有这样的文件或目录:

ADD symlink /path/dirname 要么 ADD symlink/file.txt /path/file.txt

mount选项不会为我解决(跨平台......).我尝试tar -czh . | docker build -t没有成功.

有没有办法让Docker遵循符号链接并将common_files/file.txt复制到构建的容器中?

symlink symlink-traversal docker dockerfile

59
推荐指数
6
解决办法
5万
查看次数

Python os.walk +关注符号链接

如何让这篇文章在python 2.6中遵循符号链接?

def load_recursive(self, path):
    for subdir, dirs, files in os.walk(path):
        for file in files:
            if file.endswith('.xml'):
                file_path = os.path.join(subdir, file)
                try:
                    do_stuff(file_path) 
                except:
                    continue
Run Code Online (Sandbox Code Playgroud)

python symlink traversal directory-traversal symlink-traversal

32
推荐指数
1
解决办法
2万
查看次数

遵循SVN中的符号链接

我有一个linux目录(并且不需要任何Windows结帐):

/home/me/projects/project1
Run Code Online (Sandbox Code Playgroud)

在这个项目中,我需要SVN(1.8.8)来跟踪符号链接"link1":

/home/me/projects/project1/link1/<some_directories_and_files>
Run Code Online (Sandbox Code Playgroud)

但是SVN不会让我这样做,它只是添加link1而不是它的内容.如果我尝试添加其内容,我会收到错误消息:

svn add link1/*
svn: E145001: Can't schedule an addition of '/home/me/projects/project1/link1/first_directory' below a not-directory node
Run Code Online (Sandbox Code Playgroud)

我尝试将link1转换为硬链接,但我也不能这样做:

ln /path/to/my/linked/directory link1
ln: ‘/path/to/my/linked/directory’: hard link not allowed for directory
Run Code Online (Sandbox Code Playgroud)

任何的想法?你如何处理这种配置?我只需/home/me/projects/project1要从一个简单的提交一切svn commit

linux svn symlink ln symlink-traversal

10
推荐指数
1
解决办法
2969
查看次数

在 Windows 中的 git bash ln -s /destinations/path/ link_name 只是复制目的地而不是创建链接

在 Git bash 中,我运行了以下命令:

ln -s "//server/path/Resource/" test
Run Code Online (Sandbox Code Playgroud)

当我检查它是否有效时:

ls -l
Run Code Online (Sandbox Code Playgroud)

它显示为文件夹而不是符号链接。我正在使用 Windows 并尝试创建指向网络位置的符号链接。这可能是一个简单的解决方法,但我只想要一个快捷方式,而不是复制一个大文件夹。

linux windows symlink symlink-traversal git-bash

8
推荐指数
1
解决办法
1119
查看次数

如何在swift中从文件路径读取数据时处理符号链接

我有一个文件路径作为字符串.我想要:

  1. 测试那里是否有文件
  2. 以字符串形式读取文件的内容

我遇到的问题是,有时该文件路径涉及符号链接(符号链接).也许对文件本身.也许到文件上面的一个目录.

[编辑]关闭这个,因为下面的代码(我开始),实际上工作正常,只涉及多个级别的用户错误.感谢输入人员.

func getUserResource(relativeFilePath: String) -> String? {
    let fileManager = NSFileManager.defaultManager()

    let userFilePath = NSHomeDirectory() + relativeFilePath

    if(fileManager.fileExistsAtPath(userFilePath))
    {
        do {
            return try String(contentsOfFile: userFilePath, encoding: NSUTF8StringEncoding);
        } catch {
            return nil;
        }
    }
    return nil;
}
Run Code Online (Sandbox Code Playgroud)

symlink nsfilemanager symlink-traversal swift

6
推荐指数
1
解决办法
701
查看次数

如何确定符号链接指向的文件的路径?

在Linux中,如果您有一个知道符号链接的文件的路径,那么如何以编程方式确定(在C或C++中)它指向的文件的路径?

c c++ linux symlink symlink-traversal

5
推荐指数
2
解决办法
3458
查看次数

如何让差异不遵循符号链接?

diff用来比较两个巨大的卷,它实际上是一遍又一遍地比较许多符号链接文件。

有什么办法可以阻止这种情况吗?我希望它只比较链接本身;不遵循它。

或者是否有具有此选项的替代应用程序?

diff symlink symlink-traversal

5
推荐指数
1
解决办法
742
查看次数

Node.js 确定符号链接的目标路径

注意:使用 Node.js 8

我有一系列符号链接:a-> b->c

我需要将初始符号链接解析a到其目标目的地b。这如何在 Node.js 中实现?

fs.realpath函数解析符号链接链,因此它解析ac。这不是理想的行为。

我也试图找到一个npm包来做到这一点,但到目前为止还没有任何运气。

我想也许我可以fs.open符号链接并阅读内容,但我无法弄清楚如何访问记录的fs.constants.O_SYMLINK常量,可能是因为我在节点 8 上。

symlink-traversal node.js

5
推荐指数
1
解决办法
1064
查看次数

如何列出符号链的所有成员?

查找java二进制文件可能很痛苦:

  • which java/usr/bin/java
  • lh $(which java)/usr/bin/java -> /etc/alternatives/java
  • lh /etc/alternatives/java/etc/alternatives/java -> /usr/lib/jvm/jdk1.8.0_66/bin/java

有没有办法自动跟踪符号链并打印所有成员?例如whichfollowfollow /usr/bin/java可以给:

/usr/bin/java
-> /etc/alternatives/java
-> /usr/lib/jvm/jdk1.8.0_66/bin/java
Run Code Online (Sandbox Code Playgroud)

bash symlink symlink-traversal

4
推荐指数
3
解决办法
605
查看次数

如何确定某个路径上是否存在符号链接?

我有一个原始文件,/path/to/foo.txt并有一个指向它的符号链接/other/path/to/foo.txt。我删除了/path/to/foo.txt,但将符号链接保留在原处。如何使用Cocoa API知道符号链接仍然存在?


我通过使用standard / recommended发现了这一点FileManager.fileExists(atPath:)。对于不熟悉该API的任何人来说,这里的问题是它遍历符号链接。因此,当我这样做时:

FileManager.default.fileExists(atPath: "/other/path/to/foo.txt")
Run Code Online (Sandbox Code Playgroud)

它返回false,因为它看到我给了它一个符号链接并解决了它,然后看到在解决的路径上没有文件。

如文档所述:

如果path您的应用程序无法访问at中的文件,则可能是由于一个或多个父目录不可访问而导致的,此方法返回false。如果in中的最后一个元素path指定了符号链接,则此方法将遍历该链接并根据truefalse在链接目标位置文件的存在返回。

在中似乎没有其他选择FileManager。因此,我想知道是否可以调用Cocoa API来告知其中是否存在符号链接,或者是否必须使用C或Bash API。

cocoa symlink nsfilemanager symlink-traversal swift

3
推荐指数
2
解决办法
408
查看次数

为什么Safari无法连接到localhost?

我有一个正确的/ etc/hosts文件,其中包含以下内容:

127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0 localhost
Run Code Online (Sandbox Code Playgroud)

当我尝试访问我在本地计算机上运行的服务器时,无论是端口80上的Apache还是另一个端口上运行的其他服务器,我都无法在Safari中访问它.然而,我可以在Chrome中访问它们.为什么是这样?

safari localhost hosts symlink-traversal

2
推荐指数
1
解决办法
3160
查看次数

有没有办法在PHP中检查目录是否是符号链接?

我有符号链接到某些目录,因为目录的名称有非英文字符,我厌倦了试图让apache的重写规则匹配.对于这个问题,有一个问题是对utf-8字符和apache2重写规则的麻烦,任何人都想要这样做,并且从很多人想看到这个问题的一般解决方案来看,但同时我做了一个简单的问题ascii符号链接到这些违规目录中的每一个.现在,重写规则又回到了alpha和_和 - 并且我的安全问题更少,它加载了我想要的资源.但是我仍然需要实际的目标目录名来进行显示.我用谷歌搜索"PHP目录信息,PHP符号链接",但没有找到任何东西.我需要做这样的事情:

if (is_symlink($myResDirName)) {
    $realDirName = follow_symlink($myResDirName);
}
Run Code Online (Sandbox Code Playgroud)

php function symlink-traversal

1
推荐指数
1
解决办法
3464
查看次数