2013-06-11 2 views
0

나는 리눅스에서 쉘 스크립트라는 이름의 정리를 썼다 확인합니다. 나는 그것에 익숙하지 않고 책에서 배웁니다. 그것은/usr/local/bin에 파일을 저장하라고/그러나 나는 다음과 같은 명령을 실행할 때이 오류가 얻을 : 그 폴더에 파일을 작성하는 방법을 모르는쉘 스크립트가 실행 파일 기본 명령

$ cp cleanup /usr/local/bin/ 

cp: cannot create regular file `/usr/local/bin/cleanup': Permission denied

합니다. 여기에 정리의 코드입니다 :

#!/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/ 에 파일을 복사 도와 드릴까요 내가이 그것 때문에 실행 파일을하고 있어요 내가 위에서 언급 한 폴더에 넣어 경우, 네이티브 커맨드처럼 파일의 이름을 실행할 수 있습니다. 나는 우분투의 터미널에서 일하고있다 ... 차이가 있다면, 말해줘.

+0

"허가가 거부되었습니다"란 무엇을 의미합니까? (심각한 질문) – liori

+2

당신은 아마 (예 :/홈/당신/빈으로) 로컬 디렉토리에 넣고 PATH에 디렉토리를 두는 것이 더 낫다, 그런 식으로 당신은/usr/들어가기에 대해 걱정할 필요가 없습니다 로컬/bin 또는 다른 사용자를위한 임의의 새 명령 작성 –

답변

0

linux의 /usr/local/bin/ 디렉토리는 보호 된 디렉토리입니다.이 파일에는 많은 실행 파일이 들어 있으므로 보안 문제가 발생할 수있는 파일로부터 보호해야합니다.

따라서 디렉토리에 쓰기 권한이 루트 사용자 만 제한됩니다.

당신은 관리자 사용자가 아닌 경우는 관리 사용자

해야이 .FOR sudo cp ....처럼 cp 명령 앞에 sudo command.Use는 sudo를 사용하여 루트 권한을 얻을 수 있습니다, 당신은 얻을 것이다 오류 메시지가 표시되고 복사를 수행하려면 루트 또는 다른 관리자 사용자로 로그인해야합니다. 당신이 당신의 파일을 복사 한 후

, permissions.You이 sudo chmod +x <filename>를 사용하여 실행 권한을 할당 할 수 있습니다 실행이 있어야합니다 file.It의 권한을 확인하십시오.

+0

정말 고마워요 ... 드디어 작동합니다. – user2438113

+0

내가 너에게 다른 걸 물어봐도 될까? – user2438113

+0

일부 파일을 정리해야하며 모든 파일을 정리하지 않아도되는 폴더가 있습니다. 따라서 스크립트에서 변경을 수행해야하는 폴더로 이동합니다. 그런 다음 어떻게 든 폴더에 포함 된 폴더와 파일의 모든 이름을 가져 가고 싶습니다. 그런 다음 각 파일이 로그 파일인지 확인하고 정리하십시오. 파일이 아니라 폴더 인 경우 폴더로 이동하여 동일한 작업을 수행하십시오. 어떤 제안? – user2438113