小编Cod*_*esu的帖子

Linux圣经第十版:为什么-exec cp即使有超级用户权限也无法复制文件?

我读了《Linux圣经第10版》 130页。练习\xe2\x84\x967:

\n
\n

创建/tmp/FILES目录。查找/usr/share目录下\n大于 5MB 且小于 10MB 的所有文件,并将其复制到\n /tmp/FILES目录。

\n
\n

我的命令看起来像find /usr/share -type f -size +5M -size -10M -exec cp {} /tmp/FILES \\;. 我像普通用户一样运行它并得到

\n
cp: error copying '/bla/bla' to '/lol/kek': Input/output error find: '/usr/share/bla-bla': Permission denied\n
Run Code Online (Sandbox Code Playgroud)\n

之后我尝试以超级用户身份运行它并收到错误(没有Permission denied):

\n
cp: error copying '/bla/bla' to '/lol/kek': Input/output error\n
Run Code Online (Sandbox Code Playgroud)\n

请解释一下,即使我以超级用户身份运行它,错误的原因是什么。谢谢。

\n

PS 请解释为什么带有 of 的命令-exec应该为空{}

\n

fedora permissions find

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

为什么 ~/USERNAME/bin/some_custom_command 不能按预期工作?

我读了《Linux 圣经第 10 版》,第 3 章:使用 shell,第 70 页。有提示部分:

如果要添加自己的命令或 shell 脚本,请将它们放在主目录中的 bin 目录中(例如对于名为 cn 的用户来说为 /home/cn/bin)。在某些 Linux 系统中,此目录会自动添加到您的路径中,但在其他 Linux 系统上您可能需要创建该目录或将其添加到您的 PATH 中。因此,只要您将该命令添加到具有执行权限的 bin 中,您只需在 shell 提示符下键入命令名称即可开始使用它。要使命令可供所有用户使用,请将它们添加到/usr/local/bin

我正在运行 Fedora Linux 35 工作站版并尝试创建我的自定义命令。我创建了~/bin/kek.sh

#! /usr/bin/bash
echo "Kek"
Run Code Online (Sandbox Code Playgroud)

并转到命令行,输入kek我的主目录。我有bash: kek: command not found...。之后,我转到~/.bashrc并在文件末尾添加以下行

PATH=$PATH:~/home/bin/kek; export PATH;
Run Code Online (Sandbox Code Playgroud)

然后返回~目录,进入kek并得到相同的bash: kek: command not found.... 我已将.bashrc PATH 行更改为PATH=$PATH:~/home/bin; export PATH;,重新加载终端会话并始终得到相同的结果。

请解释一下,为什么它对我不起作用?如何创建自己的命令并使其仅通过名称即可访问?谢谢。

shell fedora path

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

标签 统计

fedora ×2

find ×1

path ×1

permissions ×1

shell ×1