키워드를 사용하는 간단한 스크립트를 작성 중입니다. 그런 다음 해당 키워드가 포함된 디렉터리에서 파일을 찾아 다른 디렉터리(디렉토리 이름 = 키워드)에 복사합니다.
키워드는 명령줄 인수로 전달됩니다. 내 스크립트는 다음과 같습니다.
#!/bin/bash
# start
mkdir $1
cp `grep -Ril \"$1\"` $1
다음 명령 에 오류가 있는 것 같습니다 cp
.
missing destination file operand
이 오류를 어떻게 수정할 수 있나요?
감사해요!
답변1
Mike의 답변에 대한 해결책은 대부분 정확하지만 grep이 무언가를 발견하여 빈 디렉토리를 방지하는 경우에만 디렉토리를 생성하도록 약간 변경합니다.
#!/bin/bash
filenames=$(grep -Ril "$1")
[ $? -eq 0 ] && mkdir "$1"
for file in $filenames; do
cp "$file" "$1"
done
답변2
올바른 방법은 다음과 같습니다.
#!/bin/bash
mkdir "$1"
filenames=$(grep -Ril "$1")
if [ $? -eq 0 ] ; then
echo "$filenames" | while IFS= read -r line ; do
cp "$line" "$1"
done
fi
답변3
find를 사용해 볼 수 있습니다.
mkdir "$1"
find . -type f -name "*$1*" -exec cp {} path/to/"$1" \;