Команда
rsync может выполнить трюк , только если не существует последний каталог в пути назначения, например для пути назначения ~/bar/baz/
, если bar
существует, но baz
нет, то можно использовать следующую команду:
rsync -av --remove-source-files foo.c ~/bar/baz/
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
-v, --verbose increase verbosity
--remove-source-files sender removes synchronized files (non-dir)
В этом случае каталог baz
будет создан, если он не существует. Но если bar
и baz
не существует, rsync завершится ошибкой:
sending incremental file list
rsync: mkdir "/root/bar/baz" failed: No such file or directory (2)
rsync error: error in file IO (code 11) at main.c(657) [Receiver=3.1.2]
Так что, в принципе, можно использовать rsync -av --remove-source-files
в качестве псевдонима для mv
.