Сценарий 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/" {} \; 

One Solution collect form web for “Сценарий Bash не может перемещать файлы”

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

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

исключить dirs methode:

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

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

  • Переместить файлы обратно по 2 директориям
  • Как перенести файлы из определенных каталогов во вновь созданные каталоги на основе их расширения?
  • Перемещение сохраняет права собственности на исходные файлы, не позволяя делать записи
  • mv .. с путём: куда идет мой файл?
  • Переместить каталог (с содержимым) в домашний каталог другого пользователя (без sudo)?
  • Переместить 2000 PDF-файлов в несколько папок, каждый из которых содержит 100 файлов
  • Как обрезать имя файла из нескольких файлов в папке
  • Переименовать файлы в индекс
  • переименовать несколько файлов с одной переменной
  • Файл существует, но mv ошибки с: "mv: не может stat 'file.tar.gz': Нет такого файла или каталога"
  • Атомное удаление каталога
  • Linux и Unix - лучшая ОС в мире.