Saya memiliki masalah besar dengan beberapa karakter non-standar saat mencoba menyalin (demi cadangan) beberapa file dalam AIX 6.1. Yang perlu saya lakukan adalah memiliki arsip cadangan dengan nama file yang persis sama untuk dapat mengembalikan file dan membuatnya semuanya berfungsi lagi.
Saya mencoba membuat skrip ksh yang akan mengambil nama demi nama (baris demi baris) dari file csv dan menyalinnya menggunakan cp ke tujuan cadangan. Setelah menjalankan skrip, saya menyadari ada beberapa file yang hilang di lokasi baru. Setelah beberapa penyelidikan saya melihat bahwa file yang hilang memiliki beberapa karakter non-standar dalam nama mereka di direktori asli (seperti panjang -, huruf dengan aksen dll).
Saya memiliki file csv dengan daftar file yang akan disalin, berikut contohnya dengan panjang "-":
cat file_list.csv | grep pattern /path/to/file/some–file_with_pattern
ketika saya mencoba menyalin file spesifik ini dengan cp (baik dengan skrip atau secara manual menjalankan cp):
cp /path/to/file/some–file_with_pattern /new/backup/path cp: /path/to/file/some–file_with_pattern: No such file or directory
ketika saya menampilkan file dengan ls:
ls /path/to/file | grep pattern some?file_with_pattern
Jadi AIX melihat file dengan "?" bukannya "-" maka cp melempar kesalahan. Ketika saya menggunakan wildcard (* atau?) Untuk menyalin file, maka itu disalin tetapi memiliki "?" alih-alih "-" di direktori tujuan. Ketika saya memasukkan nama file di '' atau "" itu sama, "?" alih-alih "-" di direktori tujuan. Ini tidak memenuhi kebutuhan saya, karena ketika saya mengembalikan file dengan nama yang berbeda ("?" Bukan "-"), aplikasi yang menggunakannya tidak akan dapat merujuknya.
Saya mencoba keduanya ksh dan sh (bash tidak tersedia di server). Saya mencoba bermain dengan lokal (memaksa UTF8 dengan mengatur LC_ALL = "en_US.UTF-8"). Saya mencoba bermain dengan pengaturan penyandian Putty. Namun saya masih tidak dapat merujuk ke file dengan nama aslinya, karenanya tidak dapat menyalinnya dengan menyimpan nama asli. Adakah yang tahu cara menyalin file-file itu menggunakan perintah shell?
cp
perintah?
cp -rp /path/to /new/backup/path
bekerja untuk anda?