The UNIX and Linux Forums  


Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
noob hjälp behövs ace_face Linux 1 04-20-2008 09:23
UNIX noob hjälp med awk? AnnaLynn Shell-programmering och Skript 11 04-01-2008 10:29
Unix noob, vad behöver jag osv skylin3fr3ak UNIX for Dummies Frågor & Svar 2 02-24-2008 11:17
komplett noob avdrummerboy UNIX for Dummies Frågor & Svar 3 12-04-2006 12:25
Jag är en UNIX noob Alt + F4 UNIX for Dummies Frågor & Svar 4 04-28-2006 10:01

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Sök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 05-30-2007
Sax Sax is offline
Registered User
  
 

Join Date: maj 2007
Inlägg: 8
Question Shell noob

Hej alla,

Jag försöker att skriva ett skalskript som kommer att flytta filer från en katalog till en annan, det är bara det jag vill att se massor av olika källor katalog och flytta filer till massor av olika kataloger.

Jag är helt ny för skalskript men inte UNIX (även om jag fortfarande klass mig som en nybörjare).

Några råd skulle vara välkommen, eftersom jag är lördag titta på en ganska tom sida i VI och goggling gärna galen, men inte komma fram till mycket.
  #2 (permalänk)  
Old 05-30-2007
jim McNamara jim mcnamara is online now Forum Staff  
...@...
  
 

Join Date: februari 2004
Ort: NM
Inlägg: 5.776
Du är ganska vag. Om du behöver flytta ett helt träd prova ungefär så här:
Kod:
cd /path/to/upper/level/of/source
tar -cvf - $(find . -print -type f) | (cd ../destination ; tar -xvf -)
hitta får alla filer i källan träd, feeds filen till tjära, de tar den andra änden av röret sedan parker filen i ett nytt katalogträd med samma underkataloger. Detta är inte att radera något. Detta är en mycket generell lösning --
  #3 (permalänk)  
Old 05-30-2007
Sax Sax is offline
Registered User
  
 

Join Date: maj 2007
Inlägg: 8
Ok, är ny på detta har jag dragit en pic för att hjälpa mig förklara ......



ok förhoppningsvis kommer detta att hjälpa mig förklara vad jag försöker göra.

Jag gjorde ls | wc-l på / användaren och som gav 392, vilket låter ungefär rätt (ge eller ta 15 slumpvis andra kataloger och filer som finns där).

Så jag försöker flytta filer från en privat mapp (under xxxx.old) till andra privata mapp, jag måste göra det någonstans i regionen på 350 gånger på olika mappar.

Jag ber om ursäkt för min naff förklaring men förhoppningsvis min underbara bild ger dig en aning om vad jag är på cirka
  #4 (permalänk)  
Old 05-30-2007
Shell_Life's Avatar
Shell_Life Shell_Life is offline
Registered User
  
 

Join Date: mars 2007
Ort: Bahia, Brasilien
Inlägg: 695
Sax,
Se om detta fungerar för dig.
Observera att jag kommenterade "cp" (kopiera) uttalande så att du kan
se till att den gör vad du vill ha först, innan du kör det.
Kod:
for mNewDir in `find /user/ -type d -name 'accu*'`
do
  mNewBase=`basename ${mNewDir}`
  mNewPriv=${mNewDir}"/private/"
  mOldPriv="/user/dotolds/"${mNewBase}".old/private/"
  echo "Now copying from "${mOldPriv}" to "${mNewPriv}
  #####cp ${mOldPriv} ${mNewPriv}
done

Senast redigerad av Shell_Life; 05-30-2007 vid 04:53..
  #5 (permalänk)  
Old 05-31-2007
Sax Sax is offline
Registered User
  
 

Join Date: maj 2007
Inlägg: 8
Skål, ser ut precis vad jag är efter, men jag får ett syntaxfel på linje 5 (syntaxfel på rad 5: "mNewPriv \u003d $" oväntade), det enda jag har ändrat är att hitta (se nedan).

Jag har gått igenom jag ett par Temne att kontrollera vad jag har skrivit i VI matchar din lösning, och jag är säker på att jag har skrivit in den rätt.

Kod:
for mNewDir in `find /user/ -type d -name 'accu*.old'`
do
  mNewBase=`basename ${mNewDir}`
  mNewPriv=${mNewDir}"/private/"
  mOldPriv="/user/dotolds/"${mNewBase}".old/private/"
  echo "Now copying from "${mOldPriv}" to "${mNewPriv}
  #####cp ${mOldPriv} ${mNewPriv}
done
  #6 (permalänk)  
Old 05-31-2007
Shell_Life's Avatar
Shell_Life Shell_Life is offline
Registered User
  
 

Join Date: mars 2007
Ort: Bahia, Brasilien
Inlägg: 695
Sax,
"Hitta" är att loop genom alla de "accuNNN" abonnentförteckningar
INTE "accu * gamla".
Visa "mNewDir" direkt efter "göra" för att se vilket värde du får:
Kod:
echo "mNewDir = <"${mNewDir}">"
Dessutom skrev jag tanken på ksh - använder du samma?
  #7 (permalänk)  
Old 05-31-2007
Sax Sax is offline
Registered User
  
 

Join Date: maj 2007
Inlägg: 8
Jag tror att jag ser hur det fungerar i dag.
Jag har ändrat hitta tillbaka och ändrat manuset till ksh. Jag har också lagt till raden ovan.
När jag kör det jag inte får något fel, men då jag inte får något annat? Jag lämnade kopia kommandot kommenterade ut och sprang, men jag har inte fått de resultat som jag trodde att jag åtminstone skulle se echo linjer
Sponsrade länkar
Closed Thread

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 04:58.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0