Questions tagged «symlink»

一种特殊类型的文件,它引用不存在或现有的文件或目录。符号链接的内容由任意字符串组成,该字符串是符号链接指向的文件的路径。在路径名解析期间遇到符号链接时,文件存储的字符串用于修改路径名解析。

3
使用ln创建丢失的目录
因此,我正在编写一个小型程序包管理器,遇到的一个问题是建立文件的符号链接。 它将软件包安装到/usr/pkg/name-version,然后读取文件以确定要建立的符号链接。我ln用来建立链接,尝试安装Linux API标头时遇到了问题。我需要链接头文件本身,而不是链接包含它们的文件夹(因此,如果2个软件包需要将文件放在include的相同子目录中,则可以不将一个软件包搞乱)。 我解决了那个问题,但是 ln只是错误地指出了路径是否不完整,这很烦人,因为在安装软件包之前,这些目录不应该存在。 是否有一个标记ln会创建丢失的任何目录,还是我不得不使用一些复杂的bash脚本?

1
如何强制创建符号链接?
我有一个特定的目录,里面充满了按日期组织(命名)的其他目录。为便于参考,我有一个名为current最新链接的符号链接。 在创建新日期目录的脚本中,我希望创建或修复current符号链接以指向创建后的最新目录。 我以为适当的命令就是 ln -fs 2017-03-01 current 如果current符号链接尚不存在,则可以使用。 但是,如果current已经创建了符号链接(并且将其指向目录2017-02-28),则无法使用: 除删除符号链接current,并创建一个新的符号链接current指向2017-03-01,其结果反而是一个破碎的符号链接称为 2017-03-01指向自身,休息里面的目录2017-02-28(这是符号链接current指向,仍然分)。 这让我ln感到困惑,因此我阅读了的规格。原来这是预期的行为: 概要 ln [-fs] [-L|-P] source_file target_file ln [-fs] [-L|-P] source_file... target_dir 描述 ... 当最终操作数命名现有目录时,将采用第二种提要形式。 因此,似乎没有办法重新指向当前指向目录的符号链接,该目录指向新目标,其中新目标的名称与符号链接的名称不同。因此,ln -fs它不像我认为的那样起作用。 要我rm current,还是有另一种方法,我忽略了?
10 symlink  rm  ln 

1
ls -l --group-directories-first(也作用于符号链接)
ls选项--group-directories-first导致目录在顶部列出,这使输出的内容更加ls简洁: ls -l --group-directories-first 但是,它不作用于symlinks,实际上symlinks是目录。有可能使用 ls -l -L --group-directories-first 它将在顶部列出这两种目录,但不会区分正确的目录和符号链接的目录,这再次令人困惑。 可以ls在顶部显示符号链接目录,同时仍使其与常规目录区分开吗? 编辑: 我正在使用bash。
9 bash  zsh  directory  ls  symlink 

1
为什么拒绝使用npm开始使用node-dev的权限?
我正在尝试以低权限用户启动node.js应用程序。我知道的所有文件均由正确的用户拥有,并且权限设置得相当好。我正在尝试使用脚本文件来执行此操作。我用此命令调用脚本 sudo su - nodejs ./start-apps.sh Shell脚本运行此命令以启动应用程序 cd "/home/nodejs/my-app" npm start npm start被记录在这里。基本上,它从package.json文件中拉出要使用的命令,该文件在我们的应用程序中如下所示: // snip "scripts": { "start": "node-dev app" }, 它吐出错误: > my-app@0.1.0-build.100 start /home/nodejs/my-app > node-dev app sh: 1: node-dev: Permission denied npm ERR! spicoli-authorization@0.1.0-build.100 start: `node-dev app` npm ERR! Exit status 126 那sh似乎是说它正在报告shell命令中的错误。我不认为问题出在访问npm命令本身,因为如果是这样,拒绝的权限将在npm命令的任何输出之前引发。但是为了排除在外,这是npm命令本身的权限: $ sudo find / …


4
是否有到当前用户主目录的标准符号链接?
该外壳程序可以扩展~到您的主目录。 $HOME通常具有相同的协议,但通常您希望从可能不支持此类扩展的上下文中引用当前用户的主目录。 我有配置文件在哪里$HOME工作,但~不能,反之亦然。 我想保险丝可以沿着这些思路提供某些东西,例如/var/myself->$HOME 这样我就可以将值放在配置文件中,以指向类似 /var/myself/backdrops/pornography/wtf/yarly.jpg 已经有这样的东西了吗?如果没有,是否有充分的理由不存在这种情况?
9 symlink 

1
了解目录符号链接遍历和父目录
假设您有目录/dir1和/dir2/linked,其中目录是到目录的符号链接。 当您cd到达linkedand时pwd,您将获得输出/dir2/linked。如果这样的话cd ..,你会被戴上/dir2。此行为与您/dir2/linked之前的想法一致。但是,据我了解,..任何目录的父目录()都存储在目录inode中(即:物理上在磁盘中)。显然,既然/dir2/linked是true /dir1,那么inode上的父目录必须是/ 为了进一步使问题复杂化,而里面/dir2/linked的输出ls ..和cd .. ; ls .是不同的!似乎是在cd尊敬符号链接的路径,而在ls尊敬“物理”路径。就像这个问题中提到的那样,这里cd -P有用例。 man pwd 提到了“物理”和“逻辑”工作目录,但目前我仍然有几个问题: PWD如所述,此行为是否总是由环境变量提供的man pwd? 如果它们都是shell命令(即不是程序),为什么要默认cd并ls具有不同的行为? 是否使用典型程序(而非shell命令)PWD代替物理路径?我知道这取决于实现,但是有经验法则吗?

1
Bash:重定向到文件,始终创建新的
在bash中,一个命令链接 echo test > actual.txt 将actual.txt用“ test” 替换被调用文件的内容,并创建一个不存在的文件。但是,如果文件确实存在,bash只会打开它,截断它,然后将新内容写入文件。 具体来说,在这种情况下redirect命令失败: ln -s /some/illegal/path link.txt echo test > link.txt Bash 4.4.12给了我令人困惑的错误消息link.txt: No such file or directory。 避免这种情况的一种方法是确保在运行重定向命令之前删除文件。 rm link.txt && echo test > link.txt 不过,我想知道是否有一些bash选项或重定向操作符的调整可以防止这种故障模式。有任何想法吗?

1
我可以创建指向无法访问文件的符号链接吗?
[ 免责声明:这个问题没有恶意,我试图了解学校项目的ln -s命令] 假设我的主文件夹中有一个文件系统/home/anna。/home/bob是我无法访问的文件夹,带有我无法访问的文件,foo.txt 我可以ln -s /home/bob/foo.txt在我的主文件夹中成功运行吗?假设我可以,它将产生一个我无法访问的链接(具有与相同的权限foo.txt)是否正确? 如果我DID拥有读取权限foo.txt,只是无法访问该/home/bob怎么办? 如果我可以访问/home/bob但看不到相反的情况foo.txt呢?

1
/ tmp中的符号链接的权限
我的机器上有2个用户:linuxlite和otheruser。 otheruser 有一个文件: otheruser@linuxlite:~$ ls -l a -rw-rw-r-- 1 otheruser otheruser 6 Mar 31 12:47 a otheruser@linuxlite:~$ cat a hello linuxlite在中创建了文件和符号链接/tmp: otheruser@linuxlite:~$ ls -l /tmp/file /tmp/link -rw-rw-r-- 1 linuxlite linuxlite 3 Mar 31 12:49 /tmp/file lrwxrwxrwx 1 linuxlite linuxlite 17 Mar 31 12:49 /tmp/link -> /home/otheruser/a 现在,尽管otheruser可以阅读/tmp/file和/home/otheruser/a,但他无法阅读/tmp/link: otheruser@linuxlite:~$ cat /tmp/file …

2
在目录树中查找所有绝对链接
如何(递归)检测目录中的所有符号链接,这些符号链接以绝对方式而非相对方式来标识其目标? 由于在移动整个目录树时这些链接很可能会断开,因此我希望有一种识别它们的方法。 如果移动目录树,即使相对链接也可能断开(如果它们恰好指向目录树的根之外),但是我认为这个问题已得到解决。
8 symlink 

3
ln -s:从一个来源到多个目的地
伪码 ln -s $HOME/file $HOME/Documents/ $HOME/Desktop/ 我要在其中创建从源到两个目标的符号链接。可能是moreutils和pee。 如何从一个来源创建许多符号链接?
8 symlink 

2
Symlink作为Systemd服务中的WorkingDirectory
我有WorkingDirectory=/srv/ctr/current一个符号链接服务。 重新启动后,该服务似乎未接收到符号链接中的更改。错误日志报告/srv/ctr/releases/69为位置,但/srv/ctr/current指向/srv/ctr/releases/72。有什么办法可以让systemd接管新的目录更改吗?

4
热使差异检查本身的符号链接链接?
在Linux中,可以使用该命令diff检查文件的差异。我用它来检查两个模块之间的差异,两者都复制到/tmp。 但是,两个模块都有符号链接,因为它们已复制到/tmp目录中,所以它们可能未指向正确的文件。但这无关紧要。我要检查的是符号链接是否相同。 例如,在一个模块中,符号链接读取 /home/test/file1 而另一个符号链接显示为: /etc/rc.d/whatever diff现在会引发错误,因为-通常-它找不到文件。但是我diff想说:“嘿,那些符号链接不一样”,无论这些链接是否指向有效文件。 问题:如何diff做到这一点,即不尝试跟随链接,而是对链接本身进行区分?
8 symlink  diff 

3
查找软件包管理器未安装的文件
我想获取我的Gentoo Linux系统中所有未由软件包管理器(Portage)安装的文件的列表。这是因为我想保持系统尽可能干净,删除所有无用的文件。 让我告诉你到目前为止我一直在尝试什么。首先,我生成属于Portage跟踪的某些程序包的所有文件的列表: equery files "*" | sort | uniq > portage.txt 然后,我生成系统上所有文件的列表,除了那些我不在乎的文件: find / \( -path /dev -o -path /proc -o -path /sys -o -path /media \ -o -path /mnt -o -path /usr/portage -o -path /var/db/pkg \ -o -path /var/www/localhost/htdocs -o -path /lib64/modules \ -o -path /usr/src -o -path …
8 find  gentoo  symlink 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.