0

我在 linux 中编写了一个名为 cleanup 的 shell 脚本。我是新手,我正在从一本书中学习。它告诉我将文件保存在 /usr/local/bin/ 中,但是当我运行以下命令时出现此错误:

$ cp cleanup /usr/local/bin/

cp:无法创建常规文件`/usr/local/bin/cleanup':权限被拒绝

我不知道如何在该文件夹中写入文件。这是清理的代码:

#!/bin/bash
# Proper header for a Bash script.
# Cleanup, version 2
# Run as root, of course.
# Insert code here to print error message and exit if not root.

# Variables are better than hard-coded values.
cat ./hello > cleaning
echo "Logs cleaned up."
exit 
# The right and proper method of "exiting" from a script.
# A bare "exit" (no parameter) returns the exit status
#+ of the preceding command. 

你能帮我把文件复制到 /usr/local/bin/ 我这样做是因为它是一个可执行文件,如果我把它放在上面提到的文件夹中,我可以像本机命令一样运行文件名。我在 ubuntu 的终端工作……如果有什么不同,请告诉我。

4

1 回答 1

0

linux 中的/usr/local/bin/目录是受保护的目录。它包含许多可执行文件,因此必须保护其免受可能造成安全问题的文件的影响。

因此,对目录的写入权限仅限于 root 用户。

您可以使用命令获得root权限。在sudo命令前面使用sudo cp,例如sudo cp ....。为此,您必须是管理员用户

如果您不是管理员用户,您将收到一条错误消息,并且您必须以 root 或任何其他管理员用户身份登录才能执行复制。

复制文件后,请务必检查文件的权限。它必须具有执行权限。您可以使用分配执行权限sudo chmod +x <filename>

于 2013-06-11T18:26:57.227 回答