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.