Я взломал этот скрипт, чтобы rsync
некоторые файлы через ssh
. Опция --remove-source-files
в rsync
кажется, удаляет файлы, которые она передает, что я и хочу. Тем не менее, я также хочу, чтобы каталоги, в которые помещены эти файлы, также исчезли.
Текущая часть команды find
, -exec rmdir -p {} ;
пытается удалить родительский каталог (в данном случае /srv/torrents
), но не удается, потому что у него нет необходимых разрешений. То , что я хотел бы сделать , это остановить rmdir
от перемещения выше каталог find
выполняются в, или найти другое решение , чтобы избавиться от всех пустых папок. Я думал об использовании некоторого цикла с find
и запуском rmdir
без ключа -p
, но я думал, что это не сработает.
По сути, есть ли альтернативный способ удалить все пустые каталоги в родительском каталоге?
#!/bin/bash
HOST='<hostname>'
USER='<username>'
DIR='<destination directory>'
SOURCE='/srv/torrents/'
rsync -e "ssh -l $USER" --remove-source-files -h -4 -r --stats -m --progress -i $SOURCE $HOST:$DIR
find $SOURCE -mindepth 1 -type d -empty -prune -exec rmdir -p \{\} \;