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

Frage Linux Linux Desktop

Mitglied: KH-AP

KH-AP (Level 1) - Jetzt verbinden

14.11.2005, aktualisiert 12.08.2009, 18793 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
Batch & Shell
Dateien verschieben über die shell mit bashscript
Frage von rababar2014Batch & Shell8 Kommentare

Moin admins, folgende Frage: Ich habe zwei Files, die ich gerne unabhängig voneinander mit einem bash scirpt via cron ...

Windows Server
Möglichkeit Anzahl von Dateien in einem Ordner beschränken?
Frage von e51bomagWindows Server5 Kommentare

Ich würde gerne folgendes Realisieren: Nutzer sollen in einem Ordner nur eine Datei ablegen dürfen und danach ist der ...

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
Shell Script nach bestimmten Zeilen in einer Datei suchen
gelöst Frage von windelterroristBatch & Shell4 Kommentare

Hallo, Ich würde gerne wissen, wie ich im Shell Script nach einer Zeile in einer bestimmten Datei (z.B. test01) ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 1 TagWindows 107 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 1 TagSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 2 TagenInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 TagenDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell20 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Router & Routing
OpenWRT bzw. L.E.D.E auf Buffalo WZR-HP-AG300H - update
gelöst Frage von EpigeneseRouter & Routing11 Kommentare

Guten Tag, ich habe auf einem Buffalo WZR-HP-AG300H die alternative Firmware vom L.E.D.E Projekt geflasht. Ich bin es von ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless8 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Windows Server
Ping auf einen bestimmten Server nicht möglich
gelöst Frage von a.thierWindows Server7 Kommentare

Hallo, ich habe folgendes Problem. srv-dc1: Ping srv-nav > geht Ping srv-exchange > geht nicht srv-exchange: Ping srv-dc1 > ...