스크립트가 백업 파일을 생성할 수 없습니다.

스크립트가 백업 파일을 생성할 수 없습니다.

저는 쉘 스크립팅을 처음 접했고 스크립트를 작성하려고 합니다.

  • 디렉토리 프롬프트
  • 디렉토리를 통해 루프
  • 파일이 발견되면 스크립트의 기능을 사용하여 백업합니다.
  • 백업 만들기

모든 파일이 발견되면 복사하기 위해 file.bak라는 파일을 만들었습니다.

#!/bin/bash


function backup()
{
cp"$name" >> file.bak
}


#Main Script
echo -n "Please enter a directory name: "
read name
directory="/home/shawn"
if [ -O "$name" ] || [ -G "$name" ]
then
backup
else
echo "$name has no files."
fi

답변1

우선, 이것은 아마도 귀하의 목적에 부합하지 않을 것입니다:

cp"$name" >> file.bak

cp그러면 처음 두 문자는 이고 나머지 문자는 인 명령 호출을 시도합니다 $name. 그러한 명령이 존재하지 않을 수도 있습니다.

공백을 추가해도 문제가 해결되지 않습니다.

cp "$name" >> file.bak

이는 cp단일 인수(잘못된 호출 방법)를 사용하여 명령을 호출하고 명령이 stdout에 인쇄하는 내용을 문자열이라는 이름으로 추가 합니다 file.bak.cp "$name" file.bakcat "$name" >> file.bak

-O및를 사용한 테스트도 -G그다지 의미가 없습니다. 인쇄 중인 오류 메시지는 실제로 이러한 연산자가 확인하는 것과 일치하지 않습니다.

답변2

다음과 같은 것을 시도해 볼 수 있습니다.

#!/bin/bash

echo -n "Please enter a directory name: "
read name
find $name -type f -exec cp {} {}.bak \;

관련 정보