Например, перенести файлы jpg и mp4 в нужные папки $dest1 или $dest2. Подсчёт нужных файлов производится по их расширениям:
Для файлов jpg:
cjpg=`find $source -maxdepth 1 -name "*.jpg" | wc -l`
if [ $cjpg -eq 0 ]; then
:
else
mv $source/*.jpg $dest1
fi
Для файлов mp4:
cmp4=`find $source -maxdepth 1 -name "*.mp4" | wc -l`
if [ $cmp4 -eq 0 ]; then
:
else
mv $source/*.mp4 $dest2
fi
Для переноса папок вопрос усложняется, так как необходимо учесть множество условий. Задача становится более простой, если передаваемая папка будет упакована в какой-либо архив: tar, zip. 7z Если при подсчёте файлов будут найдены файлы с расширениями tar, zip, 7z, то будет запущена задача извлечения данных из таких архивов в папку назначения (например, $dest), а исходные файлы могут быть либо удалены начисто, либо перемещены в Корзину. Примеры ниже.
Файлы архивов tar
ctar=`find $source -name "*.tar" | wc -l`
if [ $ctar -eq 0 ]; then
:
else
for package in $dest/*.tar;
do
tar -xf "$package" -C $dest
done
# указать одно из двух
rm $source/*.tar # удалить начисто
gio trash $source/*.tar # удалить в Корзину
fi
Файлы архивов tar.gz
ctargz=`find $source -name "*.tar.gz" | wc -l`
if [ $ctargz -eq 0 ]; then
:
else
for package in $dest/*.tar.gz;
do
tar -xzf "$package" -C $dest
done
# указать одно из двух
rm $source/*.tar.gz # удалить начисто
gio trash $source/*.tar.gz # удалить в Корзину
fi
Файлы архивов zip
czip=`find $dest -name "*.zip" | wc -l`
if [ $czip -eq 0 ]; then
:
else
for package in $dest/*.zip;
do
unzip -d $dest "$package"
done
# указать одно из двух
rm $source/*.zip # удалить начисто
gio trash $source/*.zip # удалить в Корзину
fi
Файлы архивов 7z
c7zsp=`find $source -name "*.7z" | wc -l`
if [ $c7z -eq 0 ];
then
:
else
for package in $source/*.7z;
do
7z x "$package" -o$dest
done
# указать одно из двух
rm $source/*.7z # удалить начисто
gio trash $source/*.7z # удалить в Корзину
fi
Если архивы 7z закрыты паролем, данный пароль не меняется и применяется постоянно, то команда распаковки будет иметь вид:
7z x -pпароль "$package" -o$dest
Такие архивы можно помечать дополнительной буквой, например s, добавляемой к концу имени файла. Тогда вместо *.7z нужно будет указать *s.7z
Комментариев нет:
Отправить комментарий