명령 찾기 내 변수를 사용하고 싶어요

명령 찾기 내 변수를 사용하고 싶어요

사용자 입력을 기반으로 새 디렉터리와 복사할 디렉터리 내용을 만드는 스크립트가 있습니다. 이제 여기에 문제가 있습니다. 이전 파일을 특정 이름으로 바꾸고 새 이름으로 바꾸는 find 명령이 있습니다. 작동하지만 설정한 문자열을 변경하는 대신 내가 만든 변수를 사용하고 싶은데 그렇게 할 수 없다는 오류가 계속 발생합니다.

#Creates Directory
echo "Name of New Directory"
read userInput
if [[ -n "$newdir" ]]
then
  mkdir $newdir
fi
echo $newdir Directory Created
echo 
echo "Directory you wish to Copy?"
read copydir
if [[ -n "$copydir" ]]
then
#Copies contents of Specified Directory
 cp -R $copydir/!(*.UNC) $newdir;

#Searches through directory  
find $newdir/ -name "$copydir*" -exec bash -c 'f="$1"; mv "$f" "${f/sppark/work}"' - {} \;


fi

따라서 Find 명령에서 sppark 및 work 대신 newdir 및 copydir 변수를 사용하고 싶습니다.

답변1

나는 그것을 알아냈고 내가 원하는 것을 대신하기 위해 for 루프와 mv를 사용했습니다.

    #Searches through directory  
for file in $newdir/$copydir*; do
#Changes Part of File Name
mv -- "$file" "$(echo ${file}|sed 's/'$copydir'/'$newdir'/')"
done

관련 정보