小编bli*_*bli的帖子

为什么在权限正常的情况下符号链接更新到新目标时权限被拒绝?

在一台 Linux 机器(实际上是一个计算集群)上,我从另一个用户那里复制了一个文件夹(他授予我使用适当的 chmod 执行此操作的权限)。

该文件夹包含我无法访问的文件的符号链接。我想更新它们,以便它们指向我拥有的相同文件的副本。

但是,当我尝试使用 这样做时ln -sf,我得到了Permission denied。

为什么会这样?

这就是链接:

$ ls -l 50ATC_Rep2.fastq
lrwxrwxrwx 1 bli cifs-BioIT 55 21 nov.  13:45 50ATC_Rep2.fastq -> /pasteur/homes/mmazzuol/Raw_data/CHIP_TEST/BM50.2.fastq
Run Code Online (Sandbox Code Playgroud)

我无权访问其目标,但我有它的副本。这就是我想要的新目标:

$ ls -l ../../../raw_data/CHIP_TEST/BM50.2.fastq
-rwxr-xr-x 1 bli cifs-BioIT 4872660831 21 nov.  14:00 ../../../raw_data/CHIP_TEST/BM50.2.fastq
Run Code Online (Sandbox Code Playgroud)

这就是我尝试时发生的情况ln -sf:

$ ln -sf ../../../raw_data/CHIP_TEST/BM50.2.fastq 50ATC_Rep2.fastq
ln: accessing `50ATC_Rep2.fastq': Permission denied
Run Code Online (Sandbox Code Playgroud)

看来当前目标的权限才是重要的,而不是链接本身的权限。

我可以通过先删除链接然后重新创建它来规避该问题:

$ rm 50ATC_Rep2.fastq
rm: remove symbolic link `50ATC_Rep2.fastq'? y
$ ln -s ../../../raw_data/CHIP_TEST/BM50.2.fastq 50ATC_Rep2.fastq
$ ls -l 50ATC_Rep2.fastq
lrwxrwxrwx …
Run Code Online (Sandbox Code Playgroud)

permissions symlink ln

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

从文件输入:“高级”(使用小于号)与“初学者”语法

我在grymoire 中阅读了以下内容:

一个简单的例子是将“旧”文件中的“day”更改为“new”文件中的“night”:

sed s/day/night/ <old >new

或者另一种方式(对于 UNIX 初学者),

sed s/day/night/ old >new

为什么作者会认为第一种形式更高级?

我的意思是,与“初学者”语法相比,使用这种形式有什么优势?

command-line input

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

忽略别名很好吗?

我有alias rm='rm -i'我的~/.bashrc文件(我刚刚了解到它被一些人认为是不好的做法)。

使用nice以下命令运行时似乎没有考虑别名:

bli@naples:~$ touch test
bli@naples:~$ rm test
rm: remove regular empty file 'test'? n
bli@naples:~$ nice rm test
bli@naples:~$ 
Run Code Online (Sandbox Code Playgroud)

为什么呢?

shell bash alias nice

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

标签 统计

alias ×1

bash ×1

command-line ×1

input ×1

ln ×1

nice ×1

permissions ×1

shell ×1

symlink ×1