![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| UNIX for Dummies Spørsmål og svar Hvis du er usikker på hvor du skal legge inn en UNIX-eller Linux-spørsmålet, legger den her. Alle UNIX og Linux newbies velkommen! |
Mer UNIX og Linux Forum Emner Du kan finne nyttig
|
||||
| Tråd | Tråd startet | Forum | Svar | Siste innlegg |
| Trenger du finne en fil basert lengde | J_ang | UNIX for Dummies Spørsmål og svar | 8 | 03-26-2007 09:21 |
| hvordan du flytter filer i forskjellige mapper basert på filnavn | italia5 | UNIX for Dummies Spørsmål og svar | 7 | 08-23-2006 11:04 |
| Hvordan skulle jeg gjøre en finne kommandoen ikke viser banen til en fil? | LordJezo | Shell programmering og Skripting | 1 | 10-01-2004 07:01 |
| finne filnavn basert på filinnhold | kollerj | UNIX for Dummies Spørsmål og svar | 4 | 06-02-2001 02:31 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
Finne, lage og flytte filen basert på brukernavn
Hei,
Jeg er ny på UNIX (akkurat 3month brukt), Jeg fant min nye boksen inneholdt mange filer og kataloger i / home / boks / Jeg har prøvd å søke skript i TIS forum og funnet mange av dem, men jeg vet ikke hvordan kombinere dem for å lage et script, men ved hjelp av rør. Mine oppgaver er: 1) for å skanne bruker dir in / home / user / - Jeg er brukt ls-ld / home / $ bruker / , $ Brukeren må taste inn 2) Deretter gruppere alle filer i skannet dir (i oppgave 1), i gruppen av utvidelser som ". Txt", ". Sh", ". Dat" Jeg brukte ls-l | awk 'BEGIN (FS \u003d"."} (print $ 2)'> index.txt 3) Basert på index.txt, kommer jeg til å gjøre kataloger henvise til disse utvidelsene f.eks. /home / user / txtExtension / home / user / datExtension / deretter flytte alle filer til sin forlengelse dir. Jeg beklager, jeg kan ikke finne en måte å opprette dette skriptet. Jeg prøvde hele mitt beste for å kombinere alle ovenfor enkelt skript men no.3 er ganske vanskelig for meg. er det noen UNIX-Shell ekspert har ideer, løsninger eller eksempel skript til å guide meg Hilsen, Helmi. |
|
||||
|
Flytter filer av Index
Jeg testet under skriptet ved å opprette brukerkataloger under / tmp med ulike filtyper
Code:
#!/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
Takk Nagarajan Ganesan |
|
||||
|
Herregud ... så kult ennstate
Takk kompis! alt fungerer bra! men det er noe jeg savnet i begynnelsen, dersom visse filen blir fjernet uten "merke / ber om tillatelse til å flytte" brukeren eller root, er den virkelig plagsom for andre brukere å spore tilbake og kanskje de forventede filene har blitt slettet. for andre gang, er det noen kan kupé dette problemer, kanskje, ved å gjøre en bestemt tracker log eller noe? Hilsen, Helmi. |
|
||||
|
Code:
#!/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"
|
|
||||
|
Jeg har redigert manuset til
Code:
user="TEST" ' BEGIN { path = " /home/rosman/" user "/";command = "ls" path
Til info, det gjør jeg ikke logge inn som root, derfor kan jeg ikke adduser. så jeg bare laget en tilleggskonto dir for testing. Feilen staten var Code:
[rosman]: /home/rosman/TEST => backup.sh awk: 0602-533 Cannot find or open file file. The source line number is 1. Hilsen, Helmi |
![]() |
| Hugseliste |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|