Saya suka skrip Anda, tetapi jika perlu, Anda dapat melakukannya dengan baris perintah langsung dari direktori saat ini:
rsync -a "$PWD" ~/backup/
atau dengan cara yang mirip dengan pendekatan skrip Anda dengan
rsync -a "$(pwd -P)" ~/backup/
Catatan:
-
Diperlukan untuk mengutip direktori saat ini jika ada di jalur, misalnya, satu atau lebih spasi.
-
Jika ada tautan simbolis di jalur, dimungkinkan untuk mendapatkan fisik path yang menghindari semua symlink menentukan opsi
-P
dipwd
pemanggilan perintah ($(pwd -P)
), atau memanggil yang dapat dieksekusi dengan path lengkapnya ($(/bin/pwd)
).
Memang ada bawaanpwd
yang secara default menampilkan symlinked path, dan/bin/pwd
yang dapat dieksekusi yang secara default menampilkan fisik jalur. -
Kedua perintah mengacu pada variabel
$PWD
yang berisi direktori kerja saat ini ketika mereka ditanya tentang versi jalur dengan symlinks akhirnya :jadi jika Anda tidak benar-benar membutuhkan fisik path, Anda dapat menghindari untuk memanggil subkulit dan gunakan langsung variabel$PWD
.rsync -a "$PWD" ~/backup/
Menemukan solusi:
Membuat skrip shell baru seperti ini:
current_dir=`pwd`
dir_name=`basename $current_dir`
rsync -a . ~/backup/$dir_name
dan ketika menjalankan ini akan membuat direktori baru di tujuan dan menyalin konten folder saat ini.