Может ли кто-нибудь помочь мне в создании сценария Bash для создания файла eot (нулевого байта) для всех папок, поступающих (копируемых) в CentO Linux.
Предложение: 1.> скрипту необходимо понять, полностью ли скопирована папка 2.> Создайте файл с именем "folder.eot" (нулевой байт) в том же месте
Требуется ответ, спасибо.
Можно использовать
touch folder.eot
для создания нулевого файла длины.
Для первой задачи, разработайте то, чего точно Вы ожидаете.
- редактирование после обсуждения в комментариях -
следующий сценарий Bash проверяет на завершение копии с помощью эти lsof
команда. Это не очень устойчивый метод - как отмечено в комментариях, было бы предпочтительно иметь отправителя завершения сигнала файлов.
код не оптимизирован ни для чего, ни полностью проверен.
#!/bin/bash
sleep_time=1m
verbose=true
suffix=.eot
while [ true ]
do
dirs=`ls -d */ | cut -f1 -d'/'` # list only directories, trim final slash
for d in $dirs
do
if [ `lsof +D $d | wc -l` -eq 0 ]
then
touch $d$suffix
$verbose && echo No open files in $d
else
$verbose && echo There are open files in $d
fi
done
$verbose && echo pausing for $sleep_time...
sleep $sleep_time
done