Skasowałem ten skrypt do rsync niektóre pliki się skończyły ssh. The --remove-source-files opcja rsync zdaje się usuwać przesyłane pliki, czego chcę. Jednak chcę również, aby katalogi, w których te pliki zostały umieszczone, również zniknęły.
Aktualna część find dowództwo, -exec rmdir -p {} ; próbuje usunąć katalog nadrzędny (w tym przypadku /srv/torrents ), ale nie działa, ponieważ nie ma odpowiednich uprawnień. Chciałbym tylko przestać rmdir od przechodzenia nad katalogiem find jest uruchamiany lub znajdź inne rozwiązanie, aby pozbyć się wszystkich pustych folderów. Myślałem o użyciu jakiejś pętli find i działa rmdir bez -p przełącznik, ale myślałem, że to nie zadziała.
Głównie, czy istnieje alternatywny sposób usunięcia wszystkich pustych katalogów w katalogu nadrzędnym?
#!/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 \{\} \;
./foo/bar/baz/wszystkie są pustymi folderami, nie usuwają ich.) Potrzebuję czegoś, co dostanie się do katalogów poniżej obecnego poziomu, dlatego używam find.