Mi piace il tuo script ma, se necessario, puoi farlo dalla riga di comando direttamente dalla directory corrente:
rsync -a "$PWD" ~/backup/
o in un modo simile al tuo approccio allo script con
rsync -a "$(pwd -P)" ~/backup/
Note:
-
E' necessario quotare la directory corrente se nel percorso sono presenti, ad esempio, uno o più spazi.
-
In caso di collegamenti simbolici nel percorso è possibile ottenere il fisico path evitando tutti i link simbolici specificando l'opzione
-P
nelpwd
invocazione del comando ($(pwd -P)
), o chiamando l'eseguibile con il suo percorso completo ($(/bin/pwd)
).
In effetti esiste il integratopwd
che per impostazione predefinita mostra il link simbolico path e l'eseguibile/bin/pwd
che per impostazione predefinita mostra il fisico sentiero. -
Entrambi i comandi fanno riferimento alla variabile
$PWD
che contiene la directory di lavoro attuale quando viene chiesta la versione del percorso con gli eventuali link simbolici :quindi se non hai strettamente bisogno del fisico path, puoi evitare di chiamare la subshell e usa direttamente la variabile$PWD
.rsync -a "$PWD" ~/backup/
Soluzione trovata:
Creato un nuovo script di shell come questo:
current_dir=`pwd`
dir_name=`basename $current_dir`
rsync -a . ~/backup/$dir_name
e durante l'esecuzione creerà una nuova directory nella destinazione e copierà il contenuto della cartella corrente.