![]() |
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| UNIX voor Dummies Questions & Answers Als u niet zeker weet waar je een Unix-of Linux vraag, post het hier. Alle UNIX-en Linux beginners van harte welkom!! |
Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
|
||||
| Draad | Thread Starter | Forum | Antwoorden | Last Post |
| Moeten zoeken naar een bestand op basis van lengte | J_ang | UNIX voor Dummies Questions & Answers | 8 | 03-26-2007 09:21 |
| Hoe te verplaatsen van bestanden in verschillende mappen op basis van de bestandsnaam | italia5 | UNIX voor Dummies Questions & Answers | 7 | 08-23-2006 11:04 |
| Hoe zou ik een find commando niet het pad van een bestand? | LordJezo | Programmeren en Shell Scripting | 1 | 10-01-2004 07:01 |
| vinden op basis van de bestandsnaam bestandsinhoud | kollerj | UNIX voor Dummies Questions & Answers | 4 | 06-02-2001 02:31 PM |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Vinden, maken en verplaats bestand op basis van gebruikersnaam
Hi there,
Ik ben nieuw bij UNIX (net 3month gebruikt), Ik vond mijn nieuwe doos bevatte een groot aantal bestanden en directories in / home / doos / Ik heb geprobeerd om te zoeken script in tis forum en vinden velen van hen, maar ik weet niet Hoe te combineren om een script, maar met behulp van pijpen. mijn taken zijn: 1) voor het scannen van de gebruiker richt in / home / user / - I'm gebruikt ls-ld / home / $ user / , $ Gebruiker moet sleutel inch 2) Vervolgens samenwerkingsverband alle bestanden in gescande richt (in opdracht 1), in groep extensies zoals ". Txt", ". Sh", ". Dat" Ik gebruikte de ls-l | awk 'BEGIN (FS \u003d"."} (print $ 2)'> index.txt 3) Gebaseerd op index.txt, ik ga om mappen te verwijzen naar deze extensies zoals. /home / gebruiker / txtExtension / home / user / datExtension / vervolgens alle bestanden naar de uitbreiding richt. I'm sorry, ik kan het niet vinden de weg naar het maken van dit script. Ik probeerde mijn best te combineren alle hierboven eenvoudig script, maar No.3 is heel moeilijk voor mij. is er een UNIX-Shell deskundige hebben ideeën, oplossingen, of zelfs bijvoorbeeld scripts om me Groeten, Helmi. |
|
||||
|
Bestanden verplaatsen door Inhoudstafel
Ik testte de onderstaande script door gebruikers directories onder / tmp met verschillende soorten bestandsextensies
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
Bedankt Nagarajan Ganesan |
|
||||
|
Oh, man ... so cool ennstate
Bedankt makker! het allemaal goed werkt! maar er is iets wat ik miste in de eerste plaats, Als u bepaalde bestanden worden verwijderd zonder "merken / vraagt toestemming om te verplaatsen" van de gebruiker root, is het echt lastig worden voor andere gebruikers op te sporen terug en misschien zij verwacht dat de bestanden zijn verwijderd. voor de tweede keer is er iemand kan coupe deze problemen, misschien, door een bepaalde tracker inloggen of zo? Groeten, 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"
|
|
||||
|
Ik heb het script bewerkt op
Code:
user="TEST" ' BEGIN { path = " /home/rosman/" user "/";command = "ls" path
Fyi, ik ben niet inloggen als root, dus ik kan niet adduser. Dus, ik zojuist een dummy richt voor de proef. De fout staat was Code:
[rosman]: /home/rosman/TEST => backup.sh awk: 0602-533 Cannot find or open file file. The source line number is 1. Groeten, Helmi |
![]() |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|