Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
Kommentar vom Moderator Biber am 12.08.2009 um 20:59:39 Uhr
Wäre über jeden Kreativen Vorschlaf froh!
Mfg
Felix
Jepp, sieht so aus als wäre ein Ausschlafen überfällig...

gelöst Anzahl Dateien ermittlen - shell

Mitglied: KH-AP

KH-AP (Level 1) - Jetzt verbinden

14.11.2005, aktualisiert 12.08.2009, 19445 Aufrufe, 7 Kommentare

Anzahl der Dateien innerhalb eines Ordners ermiteln

Guten Tag,

ich habe das oben genannte Problem, dass ich nicht weis wie ich auf der Shell mir die Anzahl der Dateien innerhalb eines bestimmten Ordners (Problems) ausgeben lassen kann.

Letztendlich will ich ein shell-script schreiben, mit dem man eine bestimmte Datei auswählen kann. Damit man dafür einfach eine Zahl(1-9) eingeben braucht, muss natürlich vor jeder Datei ne Zahl stehn (also jeder Date eine Zahl zugewiesen werden, hoffe es ist klar wiei ch das meine!?!) Jedenfalls muss ich dafür zunächst die Anzahl der Dateien ermitteln. Hatte es bereits mit
"find -type f -print | wc -l " versucht. Allerdings wird mir da eine 7 ausgegeben. Es sind aber nur max 6 datein vorhanden. Leider wird dabei die datein "." und ".." mitgezählt!

Wäre über jeden Kreativen Vorschlaf froh!
Mfg
Felix
Mitglied: KH-AP
14.11.2005 um 15:14 Uhr
so den Befehl zur eigentlichen Abfrage hab ich... ganz einfach:
ls <ordner> | wc -l

allerdings hab ich nun das Problem, dass der User lediglich eine Zahl eingeben braucht und im Prj verzeichniss landet.
Klingt einfach ist aber leider nicht so:
title=`echo $Directory | awk '{print $3}' `

Zur erklärung: in $Directory stehen praktisch die Prj namen dirin, also z.B. Hamburg, Bremen, München o.ä. hintereinander (d.h. so: Hamburg Bremen München)

Die standart Ausgabe ist wegen ner kleinen for-Schleife untereinander:
1 Hamburg
2 Bremen
3 München

so print $3 bewikrt dass München ausgegeben wird. Allerdings muss ich genau die Angabe von $3 Variabel machen!
D.h. ich müsste mir vorher mit -- read -p "Eingabe der Projektnr: " PrjNr --(war zumindest ne Idee von mir) ne Abfrage gestalten.

Wenn ich dann aber bei print $PrjNr eingebe.. dann kommt eben die Angegebene Zahl und nicht wie gewünscht der Dateiname!
Hoffe mal es versteht jemand so halbwegs was ich meine
Bin immer noch für kreative Ideen offen

Mfg
Felix
Bitte warten ..
Mitglied: DerKleineBruder
14.11.2005 um 21:17 Uhr
Hi Felix,

so ganz habe ich dein Problem noch nicht verstanden.
Aber ein paar Anmerkungen:
"find . -type f | wc -l" ist korrekt für die Anzahl Dateien
"ls | wc -l" erfasst nicht die Dateien, die mit "." beginnen, außerdem geht es nicht
in die Unterverzeichnisse.
. und .. sind keine Dateien im eigentlichen Sinne, sondern Verweise auf Verzeichnisse, werden daher bei find . -type f nicht berücksichtigt.

Vielleicht kannst du in einer Nachricht oder als Post genauer erläutern, was du meinst.
Hört sich eigentlich lösbar an.

Grüße
das Brüderchen
Bitte warten ..
Mitglied: KH-AP
15.11.2005 um 08:02 Uhr
morgen,

mir reicht tatsächlich das ls | wc -l
die Unterverzeichnisse sollen nicht mit gezählt werden, das war schon richtig!
Gut, die Verweise wurden bei der find-Variante mitgezählt, die sollte nicht passieren, da in dem Ordner lediglich Projekordner liegen sollen.
Hab da aber grad ne ganz andere Idee...
troztdem danke für Ihre hilfe

Mfg
Felix
Bitte warten ..
Mitglied: duddits
23.11.2005 um 16:49 Uhr
Hi,

wenn ich dich richig verstehe, so möchtes du ein Script schreiben das wenn du z.B 1 eingibst das du dann in ein zuvor definierten Verzeichnis landest?
Wenn das richtig ist dann gib bescheid oder schildere dein Problem noch mal für mich.
Hätte da schon ein Idee aber möchte jetzt nicht irgendwas posten was das dann doch nicht dem entspreicht was du möchtes.

mfg duddits
Bitte warten ..
Mitglied: KH-AP
24.11.2005 um 09:14 Uhr
Morgen,

ja du hast mich schon recht gut verstanden.
Folgendes: Innerhalb des Ordners "Problems" gibt es Projekt ordner, deren Namen logischerweise dem Projektnamen entsprechen. So, nun will ich mit meinem Script eine schleife erzeugen, die mir erstens alle Ordner auflistet und mit Nummern versieht. Das heisst in der Liste steht z.B.:
1) Projektname
so, wenn ich dann auf die Taste 1 drücke soll, das Script in das entsprechende Verzeichniss wechseln (nur innerhalb der shell, das ist so gefordert und für den Benutzer sinnvoller)
Dafür habe ich bisher folgendes erstellt:
(ist leider nicht eingerückt, tut mir leid)

ad=`find * -type d | wc -l` # ad = Anzahl d. Ordner
z=1 # Z=Zähler
listprj=`ls -d */` # listet alle (Projekt)odner

echo "The projects you can choose are shown below:"
echo "--------------------------------------------"
while [ $z -le $ad ] #Schleife läuft durch, bis alle Projekt Ordner augelistet sind
do
for filename in $listprj #um den Namen des Projektordners zu ermitteln
do
echo $z $filename #Ausgabe der Nummer und des Names
let z=$z+1 #hochzählen für while schleife
done
done #ende while

echo "---------------------------------------------"
read -p "Enter the Number of the project or q to go back: " inr #hiermit taste einlesen

resp=`echo $inr`
case $inr in #case prüfung
[0-9])
if [ $inr -ge 0 ] # Eingabe >= 0 ; -ge = grather equal
then
var=`echo $listprj | awk '{print $'$inr'}' ` # $'$INR'- damit eingebenen nr
#auf entspr. Namen verwendet wird
echo -e "$var selected" "\n" #zeigt name d. Ausgewähltens Projektordners
WorkingProject=$var # Name des gewählten Prj in globale Variable um im hauptmenü hinzuwechseln
cd $WorkingProject
echo `pwd`
fi
;;
q)
;;
*) echo "Wrong key"
read -t 20
;;
esac

echo "Pfad bei choose_Prj:"`pwd`
Bitte warten ..
Mitglied: duddits
27.11.2005 um 14:47 Uhr
Hi,

habe dein Script mal ausprobiert und im Prinzip funktioniert es auch. Während das Script läuft wächselt es in das Verzeichniss, welches man zuvor ausgewählt hat nur nach dem das Script zuende ist wechselt es wieder dort hin wo du es gestartet hast.
Die Ursache dieses Problem ist, du musst das Script in der selben shell laufen lassen und nicht eine Subshell für das scipt öffnen.

Also keine #! /bin/bash im Script und kein exit im script und dann das Script
über Punkt SPACE SCRIPT (. Script) starten, somit wird für das Script keine Subshell geöffnet.
Dies funktioniert auch wenn du das Script in eines der PATH Verzeichnisse ist , wie z.B. /usr/bin/

Du kannst beim find Befehl mit dem Schalter -maxdepth 0 ( ad=`find * -type d -maxdepth 0 | wc -l` ) dafür sorgen ,das keine Unterverzeichnisse gewählt werden.

mfg duddits
Bitte warten ..
Mitglied: KH-AP
02.12.2005 um 16:26 Uhr
hallo,

ne das ist ja auch so beabsichtigt, dass das Verzeichniss nur innerhalb der Shell gewechselt werden soll... einfach um DAU fragen zu vermeiden!

Ja mit dem -maxdepth hatte ich schonmal bissel rumprobiert. Aber wie gesagt, die oben genannte Lösung ist soweit auch ok, troztdem vielen dank.

FElix
Bitte warten ..
Ähnliche Inhalte
Linux Tools
Linux-Shell via PHP-Datei ausführen
gelöst Frage von peterhaLinux Tools5 Kommentare

Moin zusammen! Ich gebe mich nach einigen Stunden nun geschlagen und bitte euch um eure Hilfe. Ich habe meinen ...

Exchange Server

Exchange 2016 Shell Fehlermeldung Shell-ID

Frage von schicksalExchange Server

Hallo zusammen, bei einem Testserver bekomme ich wenn ich Befehle absetze immer wieder den unterstehenden Fehler. Bei mehrmaliger Wiederholung ...

Basic

Regex Anzahl Character Nicht Anzahl Bytes

gelöst Frage von PeronasBasic6 Kommentare

Guten Morgen zusammen, und zwar habe ich eine Frage bzgl. RegEx/RegExp. Ich habe einen regulären Ausdruck der wie folgt ...

Batch & Shell

Auslesen des Dateinamens einer Datei im Internet via Shell-Script

Frage von 135886Batch & Shell1 Kommentar

Hallo! Ich würde gerne wissen wie bzw. ob es in einem Shell-Script möglich ist, den Namen einer Datei, zu ...

Neue Wissensbeiträge
Windows 10

Windows 10 kann XPS erzeugen aber nicht anzeigen ????

Erfahrungsbericht von Deepsys vor 1 StundeWindows 10

Heute schickt mir ein Kollegen eine E-Mail mit einer XPS-Datei vom Kunden im Anhang und fragt wie er diese ...

Exchange Server

1und1 IONOS: Probleme beim Mailversand mit Exchange

Information von reksierp vor 11 StundenExchange Server3 Kommentare

Hallo, seit Do, 17.1.19 etwa Mittags nimmt 1und1 IONOS keine Mails mehr über den Standard-Port SMTP 25 an. Nachdem ...

LAN, WAN, Wireless

Cisco Mikrotik VPN Standort Vernetzung mit dynamischem Routing

Anleitung von aqui vor 1 TagLAN, WAN, Wireless

1. Allgemeine Einleitung Das nachfolgende Tutorial ist eine Fortführung der hier bei Administrator.de schon bestehenden VPN Tutorials und beschreibt ...

Windows Mobile

Support für Windows Mobile endet im Dezember 2019

Information von transocean vor 2 TagenWindows Mobile

Moin, Microsoft empfiehlt als Alternative den Umstieg auf iOS oder Android, wie man hier lesen kann. Gruß Uwe

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Temporäre WLAN Verbindung für AD-Login
Frage von Christian.WidauerLAN, WAN, Wireless17 Kommentare

Hallo zusammen, ich weiß leider nicht unter welchem Begriff ich dafür suchen muss, daher habe ich bisher leider nichts ...

LAN, WAN, Wireless
Bekannte Drosselungen bei Providern ?
Frage von HenereLAN, WAN, Wireless15 Kommentare

Servus zusammen, in bereits angefangen, aber ich hoffe dass der Beitrag hier mehr Informationen bringt. Sind Portdrosselungen bzw gezielte ...

Windows Server
MSSQL Backup in Form von .sql einspielen
Frage von janosch12Windows Server14 Kommentare

Guten Morgen, wir verwenden das Tool SQLandFTPBackup ( ) zum sichern einiger MSSQL Datenbanken. Nun sichert das Toll die ...

Netzwerkmanagement
Reverse Proxy für TCP und UDP Anfragen
gelöst Frage von flxklsNetzwerkmanagement14 Kommentare

Hallo zusammen, ich besitze einen Rootserver, der nur eine öffentliche IP besitzt und auf dem mehrere VMs laufen. Da ...