Paano upang gumawa ng kopya sa filelist sa Linux?

K

klug

Guest
Ang ilang mga problema: Mayroon akong ilang mga dir na may mga file mismo. Gayundin Mayroon akong ilang mga file na may listahan ng mga file sa kopya. Paano upang kopyahin lamang ang mga file mula sa listahang iyon? Ako na ginawa ng ilang mga malakas na palo script: ------------------------- # / bin / malakas na palo # # SORCEDIR = / home / Danny / file / TARGETDIR! = / home/danny/files2 / ALIST = / home / Danny / filelist.txt FILELIST = `cat $ ALIST` para sa NAME sa $ FILELIST gawin CP $ SORCEDIR $ $ NAME TARGETDIR tapos ----------- ------------- Ngunit ang script na ito ay hindi gumagana ng tama kung ang pangalan ng file ay may space sa ito (halimbawa "Huling Doc.pdf"). Paano upang gumawa ng tamang script? Salamat in advance. klug.
 
Nakakakuha ka sa compicated upang gawin iyon. CP recives arbitrary archive pinaghiwalay na puwang at ang huling argument nito na natatanggap nito ang target. CP file_1_ext file_2.ext ... filen_ext target_dir / At ang puwang na bagay sa * ala ay trated bilang isang espesyal na carater kaya kailangan mong pangunahan ito ng isang \\, inirerekumenda ko iwasan ang paggamit ng mga puwang sa mga pangalan at pagpapalit ng gamit _ cuz kung trabaho mo madalas sa SH * makikita mo na sa iyo nakakakuha 2 caracters marami pa sa uri, kahit na sa TAB ... ay de gumana .... Ipinapalagay ko maaari mong hulaan ang natitira ... : D
 
Oo, alam ko na ito ay mas mahusay na upang maiwasan ang mga puwang sa filename, ngunit mayroon akong problemang ito at hindi ko maaaring baguhin ang filename at listahan. Ko malutas ang problemang ito sa pamamagitan ng ganitong paraan:! ------------------------- # / Bin / malakas na palo # # SORCEDIR = / home / Danny / mga file / TARGETDIR = / home/danny/files2 / ALIST = / home / Danny / filelist.txt cd $ SORCEDIR tar cvf - - file-mula sa $ ALIST | (cd $ TARGETDIR; tar xvf -) ------- -----------------
 
HAHAHAH goood na paraan upang gawin iyon, itsn't pa rin ang pinakamahusay na paraan, siguro ay maaari mong gamitin ang isang filter. (Ito ay mula sa MySQL, ngunit yoy maaaring gamitin ito) palitan \\ \\ b \\ \\ \\ - filelist.txt \\ b ay isang lumipat na palitan ang mga pangangailangan upang makahanap ng puwang ang mga karagdagang \\ ay ang kilala kadahilanan, siguro ay maaari kang maglagay ng isang \\ ( space) dito, hindi ako sigurado \\ \\ naglalagay ng isang \\ sa file at ang \\ (space) nilalagay ang puwang sa file. na ang dahilan kung bakit ang \\ \\ \\ (space) Ito ay ang gawain ng pagsasalin ng mga puwang May mas mahusay na paraan upang gawin iyon, ay isang pipe na isinasalin sa lumipad, ngunit hindi ko matandaan pa rin, kaya hindi ako messing gamit ito sa ngayon
 
Salamat, deepspawn, din ako ay naghahanap para sa pagpapalit ng "", ngunit hindi pa nahanap ang paraan ng ... Walang "palitan ang" command sa aking Slackware Linux. : (Pa rin, salamat para sa iyong mga ideya, ako ay panatilihin ito para sa hinaharap;) maligayang pagbati! klug.
 

Welcome to EDABoard.com

Sponsor

Back
Top