Я могу использовать команду cp или mv для копирования / mv файлов в новую папку вручную, но в цикле for это не получается.
Я пробовал разные способы сделать это, но ни один из них не работает. Самое неприятное то, что он работает при локальном запуске.
Простая версия того, что я пытаюсь сделать, показана ниже:
#!bin/bash
#Define path variables
source_dir=/home/me/loop
destination_dir=/home/me/loop/new
#Change working dir
cd "$source_dir"
#Step through source_dir for each .txt. file
for f in *.txt
do
# If the txt file was modified within the last 300 minutes...
if [[ $(find "$f" -mmin -300) ]]
then
# Add breaks for any spaces in filenames
f="${f// /\\ }"
# Copy file to destination
cp "$source_dir/$f $destination_dir/"
fi
done
Сообщение об ошибке:
cp: missing destination file operand after '/home/me/loop/first\ second.txt /home/me/loop/new/'
Try 'cp --help' for more information.
Однако я могу запустить вручную:
mv /home/me/loop/first\ second.txt /home/me/loop/new/
и работает нормально.
Я получаю ту же ошибку, используя cp, и аналогичные ошибки, используя rsync, поэтому я не уверен, что делаю неправильно ...