Bagaimana membuat salinan dengan filelist di Linux?

K

Klug

Guest
Beberapa masalah:

Saya punya beberapa dir dengan file di atasnya.Juga Aku punya beberapa file dengan daftar file yang akan disalin.Cara menyalin hanya file dari daftar itu?

Saya telah membuat beberapa script bash:
-------------------------
#! / bin / bash
#
#

SORCEDIR = / home / danny / files /
TARGETDIR = / home/danny/files2 /
ALIST = / home / danny / filelist.txt

FILELIST = `cat $ ALIST`

di bagi NAMA $ FILELIST

melakukan

cp $ SORCEDIR $ NAMA $ TARGETDIR

selesai
------------------------

Tapi script ini tidak bekerja dengan benar jika nama file telah ruang di atasnya (misalnya "Doc.pdf Terakhir").Bagaimana membuat skrip yang benar?

Thanks in advance.klug.

 
Anda memperoleh untuk compicated untuk melakukan itu.cp sewenang-wenang recives dipisahkan ruang arsip dan argumen terakhir yang menerima dengan target.

cp file_1_ext file_2.ext ...filen_ext target_dir /Dan ruang yang di * nix adalah trated sebagai Musical khusus jadi Anda perlu mendahuluinya dengan \, Saya sarankan hindari penggunaan spasi pada nama dan mengganti dengan _ cuz jika Anda bekerja sering dalam * sh Anda akan melihat bahwa Anda memperoleh 2 caracters lebih untuk mengetik, bahkan dengan TAB ...
tidak de bekerja ....

Saya asumsikan Anda bisa menebak sisanya ...

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />
 
Ya, saya tahu bahwa lebih baik untuk menghindari spasi pada nama file, tapi aku punya masalah ini dan aku tidak bisa mengubah nama file dan daftar.

Saya telah memecahkan masalah ini dengan cara ini:

-------------------------
#! / bin / bash
#
#

SORCEDIR = / home / danny / files /
TARGETDIR = / home/danny/files2 /
ALIST = / home / danny / filelist.txt

cd $ SORCEDIR
tar cvf - - file-dari $ ALIST | (cd $ TARGETDIR; tar xvf -)
------------------------

 
Goood hahahah cara untuk melakukan itu, masih itsn't cara TERBAIK, mungkin Anda bisa menggunakan filter.
(Ini dari mysql, tapi yoy dapat menggunakannya)

mengganti \ \ b \ \ \ - filelist.txt

\ b adalah saklar yang menggantikan perlu menemukan ruang yang aditional \ adalah alasan terkenal, mungkin Anda dapat menempatkan sebuah \ (spasi) di sini, aku tidak yakin
\ \ Menempatkan sebuah \ pada file
dan \ (spasi) menempatkan ruang dalam file.itu sebabnya \ \ \ (spasi)

Itu pekerjaan menerjemahkan ruang

Bahkan ada cara yang lebih baik untuk melakukan itu, adalah sebuah pipa yang menerjemahkan on the fly, tapi saya tidak ingat dengan baik, jadi saya tidak bermain-main dengan sekarang

 
Thanks, deepspawn,

Saya juga sedang mencari untuk menggantikan "", tetapi belum menemukan jalan ...Tidak ada "menggantikan" perintah di Slackware Linux.

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Sedih" border="0" />Anyway, terima kasih atas ide Anda, saya akan menyimpannya untuk masa depan

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />Best Wishes!klug.

 

Welcome to EDABoard.com

Sponsor

Back
Top