LINUX.ORG.RU

скрипт не работает

 ,


0

1

мне надо написать скрипт ,которые копируется в заданного каталог исполняемые файлы из другого заданного каталога. Скрипт

#!/bin/bash

echo $1
echo $2

find $1 -type f

while [ -f $1 ]
do 
    if [ -x $1 ]
        then cp $1 $2
    fi
done
Проблем в том,что он только ищет файлы но не копируется его в заданного каталога Скажите,пожалуйста, в чём ошибку



Последнее исправление: beastie (всего исправлений: 1)

Проблем в том,что он только ищет файлы но не копирует
Скажите,пожалуйста, в чём ошибку

Результат find никуда не записывается.

Можно сделать проще. man find в районе ключа -exec. Чтобы найти и скопировать все файлы достаточно команды вроде:

find $1 ...условия... -exec cp '{}' $2 \;

здесь «'{}'» означает имя найденного файла, а «\;» — конец команды, начинающейся с -exec.

question4 ★★★★★
()
#!/bin/bash -x

Src=$1
Dst=$2

for f in `find $Src -type f`; do
  if [[ -x $f ]]; then
    cp $f $Dst/
  fi
done
Difrex ★★★★
()

Но если задание — сделать именно скриптом, то find не нужен. Достаточно цикла for:

for f in $1/*
который переберёт все файлы в $1. Тело цикла и ключевые слова для начала/конца писать не буду.

question4 ★★★★★
()
Ответ на: комментарий от question4

спс большое файлы копируются а можно еще спросить ,при запуске скрипта он пишет что

cp:пропускается каталог << >> это значит там не такие файлы получается?

nana2000
() автор топика

Google translate или реформа образования? Баш раньше падежей преподают?

ashot ★★★★
()
Ответ на: комментарий от nana2000

cp по умолчанию не копирует рекурсивно, только файлы-аргументы

find «$1» -type f | while read -r f .. - вариант модификации исходного

find "$1" -type f -executable -exec echo cp -t "$2" {} +, (echo для проверки, -t гнутая) возможно удобен будет гнутый "-maxdepth .."

если нужно рекурсивно и с сохранением структуры - можно прикрутить rsync или tar

anonymous
()
Ответ на: комментарий от question4

а подскажите,пожалуйста чтобы он только копируют файлы и если там есть подкаталоги то только файлы в подкаталоги

nana2000
() автор топика
Ответ на: комментарий от nana2000

русский не родной что ли?

пример хотя бы, что куда: ../.. - > ../..

anonymous
()
Ответ на: комментарий от nana2000

а подскажите,пожалуйста чтобы он только копируют файлы и если там есть подкаталоги то только файлы в подкаталоги

Что, откуда и куда нужно скопировать? Лучше примеры, так как падежи ты явно путаешь.

question4 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.