간단한 스크립트 문제

간단한 스크립트 문제

AIX의 스크립트에 문제가 있는데 오류를 찾을 수 없습니다. 두 디렉터리 간에 파일을 복사하고 싶지만 먼저 해당 디렉터리가 존재하는지 확인하세요. 내가 하고 있는 일은 이것이다:

PATH=/home/fede/
PATH2=/home/prueba/
if [ -d $PATH ];
then
find $PATH -type f -exec cp {} $PATH2 \;
        echo "se copiaron los archivos correctamente"
else
        echo "no existe"
fi

하지만 다음 메시지를 받았습니다: ./scriptTB[5]: find: not found. se copiaron los archivos correctamente. 마지막 줄에는 스페인어로 "파일이 올바르게 복사되었습니다"라고 적혀 있습니다. 스크립트 이름은 입니다 scriptTB.

전에 뭔가를 넣어야 합니까 find? 문제는 find.

답변1

$PATH프로그램 바이너리(예: find사용하려는 프로그램)를 찾을 수 있는 위치를 시스템에 알려주는 기본 환경 변수이므로 이 변수에 대해 다른 이름을 사용해야 합니다. 귀하의 시스템을 덮어쓰고 계시고 $PATH이제 귀하의 시스템이 프로그램을 찾을 수 없을 것 같습니다 find. 이것을 시도해보고 작동하는지 확인하십시오.

답변2

PATH실행 파일을 찾기 위해 쉘에서 사용하는 환경 변수와 정확히 같습니다. 설정을 해제하거나 변경하면 셸에서 find또는 같은 명령을 찾지 못할 수 있습니다 cp.

스크립트에서 소문자 변수 이름을 사용하는 것이 더 좋습니다. 중요한 환경 변수와 충돌할 가능성이 적습니다.

이 경우 , 예를 들어 독자에게 일부 문서를 제공하는 추가 이점이 있는 source_dir및 를 사용할 수 있습니다.target_dir

관련 정보