Чтобы сэкономить место на моем резервном диске, я хочу «зачистить» файлы данных, которые можно легко восстановить и, следовательно, не нужно выполнять резервное копирование.'parallel' или 'find' для итерации по каталогам? [bash]
В настоящее время я использую «параллельную» команду UNIX, чтобы по существу разделить большой вложенный цикл for на многие ядра, причем каждый процесс работает с разными входными аргументами.
# PARALLEL COMMAND CALLING mothballer.sh WITH INPUT ARGUMENTS
time parallel -j +0 --max-procs 8 "./mothballer.sh {1} {2} {3} {4} {5}" ::: {date1,date2} ::: {exp1,exp2} ::: {2,4,8} ::: {16,32,64} ::: {1,2,3,4,5}
... который интерпретирует аргументы командной строки и передает их в следующий сценарий, «motherballer.sh»:
# reading command line arguments
date=$1
experiment=$2
parameter1=$3
parameter2=$4
trial=$5
# paths to original directory and a mirror directory in the backup server
WORK_DIR=/$WORK_MACHINE/${date}/${experiment}/${parameter1}/${parameter2}/${trial}/results
BACKUP_DIR=/$BACKUP_SERVER/${date}/${experiment}/${parameter1}/${parameter2}/${trial}/results
# create the mirror directory in the backup server
mkdir -p $BACKUP_DIR
# do the backup ("rsync" is similar to "cp")
rsync -avP $WORK_DIR/*.csv $BACKUP_DIR
# run rsync again to verify it worked; "rm" old files.
Есть ли лучший способ это? Например, используя «find»?
EDIT: Кроме того, было бы неплохо иметь возможность использовать «*» подстановочный, так как не все эксперименты имеют те же параметры комбинации и т.д. (то есть каталоги, одинаково глубоко, но имеют другую папку имена). Это самое большое ограничение с моим текущим методом (см. Выше).
* «Лучше» * каким образом? Быстрее? Более избирательно? Меньшие? –
Может быть, этот способ все еще в порядке, но я в основном задаюсь вопросом, могу ли я сделать то же самое с «найти». Кажется более подходящим для поиска в каталогах. – yunque
@MarkSetchell на самом деле, «более избирательный» - это то, что мне нужно ... см. Мой EDIT в нижней части OP. – yunque