2

Я довольно новичок в скриптах в Linux. Я пытаюсь получить простой скрипт, который находит файл по его точному имени, а затем копирует этот файл в другую папку.

Так что по сути это должно работать как "./findandcopy [имя файла]" Это то, что я до сих пор получил:

#!/bin/sh

ARGS=1
E_BADARGS=65
E_NOFILE=66

if [ $# -ne "$ARGS" ]  # Correct number of arguments not passed
 then
  echo "Usage: `basename $0` filename"
  exit $E_BADARGS
fi


'find ./ -name \$1'  -exec cp {} /home/marc/ \;

но это не сработает для меня. Ценю любую помощь.

1 ответ1

3

Вы должны использовать:

find ./ -name "$1" -exec cp {} /home/marc/ \;

Без одинарных кавычек. В противном случае оболочка будет обрабатывать всю команду find ./ -name \$1 как одно имя файла и попытаться выполнить это.

Вы должны заключить аргумент "$1" чтобы не допустить расширения пробелов или глобусов в имени файла.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .