Скрипт Bash не может перемещать файлы

Скрипт Bash не может перемещать файлы

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

Вот мой тестовый код:

#!/bin/bash

today=$(date +'%m:%d:%Y')
target="Archived-$today"
mkdir -p $target
find . -type f -name "*.zip" -exec mv -i {} /$target \;

Ему удается правильно создать папку, но он не может переместить файлы, которые он находит, в папку. Я делал это только в качестве небольшого теста, и и скрипт, и файлы были созданы одним и тем же пользователем. Если я добавляю sudoв начало, он пытается переместить файлы, но вместо этого он только удаляет файлы из текущего каталога, но не помещает их в новый созданный каталог.

Я не пытаюсь перемещать .zip файлы. Просто пример.

Я пробовал chmod 777и на файлах и на папках. Происходит то же самое.

Я использую Ubuntu 14.04 LTS.

Если есть способ сделать это гораздо лучше, пожалуйста, сообщите мне.

Любые указания в правильном направлении будут весьма признательны.

Редактировать

Теперь это работает.

Я обновил findзаявление следующим образом:

find . -maxdepth 1 -type f -name "*.zip" -exec mv -t "$target/" {} \;

решение1

найти файлы в текущем каталоге, но не в подкаталогах:

find . -maxdepth 1  -type f -name '*.zip'  -exec mv -t "$target/" {} \;

Метод исключения каталогов:

find . -type f -not -path "$target/*"  -name '*.zip'  -exec mv -t "$target/" {} \;

Обратите внимание, что это исключит только сегодняшний архив, в то время как у вас будут другие архивы, я рекомендую первую команду или создать архивные каталоги вне основного каталога!

Связанный контент