Saya memiliki skrip sederhana (Diberikan di bawah) pada mesin yang mengumpulkan file dari beberapa folder menjadi satu dan kemudian mengarsipkannya. Script berfungsi seperti yang diharapkan pada mesin jarak jauh. Ketika saya menjalankannya melalui ssh ( ssh user@machine -f 'path.to.script'
) saya mendapatkan output ini
tar: toSend: Tidak bisa stat: Tidak ada tar file atau direktori: Kesalahan keluar tertunda dari kesalahan sebelumnya Dibunuh oleh sinyal 1.
Apa yang saya lakukan salah?
#!/bin/bash
archfile=~/fastspace/toSend.tgz
dir=~/fastspace/toSend
if [ -f $archfile ] ; then
rm $archfile
fi
if [ -d $dir ]; then
rm -r $dir
fi
mkdir $dir
for i in {1..20}; do
cp ~/fastspace/prog/mn0.$i/resSum.dat $dir/res$i
cp ~/fastspace/prog/mn0.$i/parOut.dat $dir/pars$i
done
tar cvfz $archfile toSend
rm -r $dir
@ott Dalam hal ini saya mendapatkan pohon folder lengkap toSend bukan folder itu sendiri. Selain itu, ini bagus.
—
Yotam
Ah, maka Anda ingin chdir ke folder di atas. Kemudian ubah ke
—
ott--
tar cvfz $archfile -C ~/fastspace toSend
.
Perintah Anda tidak diterima oleh bash. Saya juga tidak yakin saya mengerti saran Anda. Anda menyarankan saya akan masuk ke mesin remote dan menjalankannya dari sana? atau tambahkan baris chdir di mana saya akan pergi ke folder di mana saya ingin kamu meletakkan folder?
—
Yotam
Anda harus mengubah perintah tar di skrip Anda. The
—
ott--
-C ~/fastspace
berarti chdir to ~/faszspace
sebelum memulai untuk arsip toSend dir`.
tar cvfz $archfile $dir
alih-alihtar cvfz $archfile toSend
.