Líbí se mi váš skript, ale v případě potřeby jej můžete provést pomocí příkazového řádku přímo z aktuálního adresáře:
rsync -a "$PWD" ~/backup/
nebo podobným způsobem jako váš skriptový přístup s
rsync -a "$(pwd -P)" ~/backup/
Poznámky:
-
Je potřeba uvést aktuální adresář, pokud je v cestě například jedna nebo více mezer.
-
V případě symbolických odkazů v cestě je možné získat fyzické cestu vyhýbá se všem symlinkům zadáním volby
-Pvpwdvyvolání příkazu ($(pwd -P)), nebo volání spustitelného souboru s jeho úplnou cestou ($(/bin/pwd)).
Ve skutečnosti existuje vestavěnýpwdkterá ve výchozím nastavení zobrazuje symbolické odkazy cestu a spustitelný soubor/bin/pwdkterá ve výchozím nastavení zobrazuje fyzické cesta. -
Oba příkazy odkazují na proměnnou
$PWDkterý obsahuje aktuální pracovní adresář když jsou požádáni o verzi cesty s případnými symlinky :pokud tedy nutně nepotřebujete fyzické cestu, můžete se vyhnout volání subshell a použijte přímo proměnnou$PWD.rsync -a "$PWD" ~/backup/
Nalezeno řešení:
Vytvořil nový skript shellu, jako je tento:
current_dir=`pwd`
dir_name=`basename $current_dir`
rsync -a . ~/backup/$dir_name
a když to provedete, vytvoří se nový adresář v cíli a zkopíruje se obsah aktuální složky.