Решено путем обновления HTTP-сервера Unicorn с версии 4.9 до версии 5.3. Я не знаю, решило ли обновление проблему или это была переустановка этой решенной проблемы. Странно то, что я никогда не мог точно определить проблему с помощью инструментов мониторинга или ведения журнала.
Используя простой цикл оболочки, предполагая, что файлы должны быть скопированы в каталог, заданный значением$destdir
:
for pathname in */*.gz; do
cp -i -- "$pathname" "$destdir/$( dirname -- "$pathname" )_$( basename -- "$pathname" )"
done
Попробуйте это,
find folder[1-3] -type f -name '*.gz' | while read -r FILE; do cp "$FILE" "${FILE//\//_}"; done
folder[1-3]
местоположение источника. -type f
поиск только файлов. -name '*.gz'
суффикс имени файла с .gz
. ${FILE//\//_}
замените '/' на подчеркивание. С предварительным именем/переименованием (также известным как Perl Ларри Уолла -переименовать)(rename
в Debian/Ubuntu, prename
в RHEL/CentOS, IIRC):
В родительском элементе folder1
, folder2
,folder3
:
rename -n s:/:_: */*
-n
— это параметр пробного запуска, замените на «-v» или удалите, если переименование выглядит хорошо.
Что-то вроде этого?
#!/bin/bash -ex
DESTDIR="PATH/TO/FINAL/DESTINATION/DIRECTORY"
for DIRS in /PATH/TO/YOUR/DIRECTORIES/*/;
do
for FLES in $DIRS*.gz;
do
cp $FLES $DESTDIR/$(echo $(basename $DIRS)"_"$(basename $FLES))
done
done
Изменить :Я потрудился не добавлять пояснений к коду, потому что ОП не удосужился показать, что они пытались решить проблему самостоятельно (если вообще ). Но помощь все равно придется оказать, отсюда и мой пост.