The UNIX and Linux Forums  

Go Back   UNIX och Linux Forum > Upp Forum > UNIX for Dummies Frågor & Svar
.
google unix.com



UNIX for Dummies Frågor & Svar Om du inte är säker på var att skriva en UNIX eller Linux fråga efter det här. Alla UNIX-och Linux-nybörjare välkomna!

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
Behöver du hitta en fil baserat längd J_ang UNIX for Dummies Frågor & Svar 8 03-26-2007 09:21
hur man kan flytta filer till olika mappar baserat på filnamn italia5 UNIX for Dummies Frågor & Svar 7 08-23-2006 11:04
Hur skulle jag göra en hitta kommandot inte visas sökvägen till en fil? LordJezo Shell-programmering och Skript 1 10-01-2004 07:01
hitta filnamnet baserat på filinnehåll kollerj UNIX for Dummies Frågor & Svar 4 06-02-2001 02:31

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 04-18-2007
Helmi Helmi is offline
Registered User
  
 

Join Date: april 2007
Inlägg: 15
Hitta göra och flytta filen baserat på användarnamn

Hallå där,
Jag är nybörjare i Unix (precis 3month använts)
Jag har hittat min nya box innehåller en massa filer och kataloger i / home / låda /
Jag har försökt söka manus i ôçò forumet och hittade många av dem, men jag vet inte
hur man kan kombinera dem för att göra ett manus, men med hjälp av rör.
mina arbetsuppgifter är:

1) för att skanna användaren dir i / home / user / - I'm används ls-ld / home / $ user / , $ Användaren måste nyckeln i.

2) Då samlar alla filer i skannad dir (i uppgift 1), i grupp tillägg såsom ". Txt", ". Sh", ". Dat"
Jag använde ls-l | awk 'BEGIN (FS \u003d"."} (print $ 2)'> index.txt

3) Baserat på index.txt, jag ska göra kataloger hänvisar till dessa förlängningar exempel.
/home / user / txtExtension
/ home / user / datExtension /

sedan flytta alla filer till en förlängning dir. Jag är ledsen, jag kan inte hitta sätt att skapa det här skriptet.

Jag försökte mitt bästa att kombinera alla ovan enkelt skript men No.3 är ganska svårt för mig.
finns det någon UNIX-Shell expert har idéer, lösningar eller ens exempelskript att guida mig
Hälsningar,
Helmi.
  #2 (permalänk)  
Old 04-19-2007
ennstate ennstate is offline
Registered User
  
 

Join Date: mars 2007
Plats: Chennai
Inlägg: 222
Flytta filer genom Index

Jag har testat under manus genom att skapa användare kataloger under / tmp med olika typer av filtillägg


Kod:
#!/bin/ksh
 
 /bin/rm index.dat
 
 set -A USER_HOME  /tmp/UserA /tmp/UserB /tmp/UserC /tmp/Root /tmp/GroupA /tmp/GroupB
 set -A USERS UserA UserB UserC Root GroupA GroupB
 
 for v in   ${USERS[*]} ; do
   find /tmp/$v -type f | awk -F. ' (NF == 2 ){ print $2 }' | sort -ud | tee -a index.dat
 done
 
 for type in $(<index.dat); do
   NewDir=/tmp/${type}-IndexedFileDir
   mkdir -p $NewDir
   find ${USER_HOME[*]} -type f -name "*.$type" -print | xargs -I{} -t mv {} ${NewDir}
 done

Kontrollera ovanstående script genom att köra det på en del falska kataloger och låt oss veta om detta doesnot hjälp.

Tack
Nagarajan Ganesan
  #3 (permalänk)  
Old 04-19-2007
Helmi Helmi is offline
Registered User
  
 

Join Date: april 2007
Inlägg: 15
Oh, man ... så coolt ennstate
Tack kompis!
allt fungerar bra! men det är något som jag missade i början,
om vissa filen tas bort utan "märker / begär tillstånd för att flytta" användaren eller root, är det verkligen besvärande för andra användare att spåra tillbaka och kanske de förväntade filerna har tagits bort.

för andra gången, är det någon kan Coupe detta problem, kanske genom att göra en viss tracker logg eller nåt?

Hälsningar,
Helmi.
  #4 (permalänk)  
Old 04-19-2007
ghostdog74 ghostdog74 is offline Forum Advisor  
Registered User
  
 

Join Date: Sep 2006
Inlägg: 2557

Kod:
#!/bin/sh
awk -v user="user1" ' BEGIN {  path = " /home/" user "/";command = "ls" path ;
              while ( (command | getline line)>0 ) {                          
                            if (line ~ /\....$/) {
                                          ext = substr(line,length(line)-2)
                                          Extension[ext]    
                                          files[line] = ext
                            }                            
              }
            }
        END {   makedircmd = "mkdir "
                for ( e in Extension) {
                     print "making " path e                     
                     dir = path e
                     makedircmd = makedircmd dir                                      
                     print makedircmd
                 }
                 #system(makedircmd) #uncomment to use
                 for (f in files) {
                            mvcmd = "mv" path f " " path files[f]
                            traceback = "mv" path files[f] "/" f path 
                            print traceback
                            print traceback >> "backup.sh" #backup
                            #system(mvcmd) #uncomment to use
                 }
        }

' "file"

ett försök i awk. du kan använda backup.sh att flytta tillbaka filerna till den ursprungliga katalogen.
  #5 (permalänk)  
Old 04-19-2007
Helmi Helmi is offline
Registered User
  
 

Join Date: april 2007
Inlägg: 15
Jag har redigerat manus på
Kod:
user="TEST" ' BEGIN {  path = " /home/rosman/" user "/";command = "ls" path

Om testet är ett test dir som innehöll 1:a som ennstate

För kännedom kan jag inte logga in som root, därför kan jag inte adduser. Så jag bara gjort en dummy dir för testning. Felet staten
Kod:
[rosman]: /home/rosman/TEST => backup.sh
awk: 0602-533 Cannot find or open file file.
 The source line number is 1.

Och jag antar att det var i den första raden i awk. Alla förslag hur man rättar till detta?

Hälsningar,
Helmi
  #6 (permalänk)  
Old 04-19-2007
ghostdog74 ghostdog74 is offline Forum Advisor  
Registered User
  
 

Join Date: Sep 2006
Inlägg: 2557
inte säker, men du kan försöka

Kod:
..
print traceback > "backup.sh" ( single > )
...

För kännedom, jag använder GNU awk. också se skrivåtkomst beviljas PROVNINGSFÖRFARANDE katalog.
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 06:08.


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