Script, zum Erstellen einer Textdatei mit Liste zum Inhalt eines Ordners

Status
Für weitere Antworten geschlossen.
Nein das stimmt so nicht... wie du in meiner Signatur erkennen kannst habe ich auch bereits DSM 5.1 und bei mir ist auch ipkg installiert.
Ich habe das "dos2unix" vorhin erst installiert und ausprobiert, funktioniert auch auf der DS einwandfrei.

Welches Synology System hast du denn?

Gruß
luddi
 
Das hängt weniger an DSM 5.x, sondern mehr an der verbauten CPU. Schau mal ins Wiki.
Welche DS hast du?

Edit: Frogman war schneller.
 
um es mit Windows anschauen zu können, würde ich folgendes machen:
Rich (BBCode):
DATE=$(date +"%Y%m%d_(%H%M%S)")
ls -A /volume1/filme | tr '\r' '\r\n' | sort > "/volume1/filme/liste_$DATE.txt"
oder wenn es eingebunden ist, unter Windows:
Rich (BBCode):
dir /B /O:N /S /ad > 'Filme.txt'
Bedeutung: Liste im einfachem Format, sortiert nach Namen, rekursive, nur Verzeichnisse, umgeleitet in Textdatei
unter Windows werden automatisch die "richtigen" (für Win User) Zeilenumbrüche verwendet.
 
Steht doch da:

Rich (BBCode):
dir /B /O:N /S /ad > 'Filme.txt'
Bedeutung: Liste im einfachem Format, sortiert nach Namen, rekursive, nur Verzeichnisse, umgeleitet in Textdatei
unter Windows werden automatisch die "richtigen" (für Win User) Zeilenumbrüche verwendet.

Eingebunden bedeutet, dass unter Windows ein gemeinsamer Ordner der DS als Netzlaufwerk eingebunden ist. Dann kann man unter Windows das dir-Kommando lokal auf das Netzlaufwerk absetzen.
 
und das "O" steht für das Laufwerk und das N? Was ist, wenn ich es z.B unter I:\Kinderfilme\ habe? Wie muss dann der Code fürs Windows aussehen?
 
Hier findest Du die Doku zum 'dir'-Befehl und seiner Schalter...
 
und das "O" steht für das Laufwerk und das N? Was ist, wenn ich es z.B unter I:\Kinderfilme\ habe? Wie muss dann der Code fürs Windows aussehen?

Nein, das dir arbeitet in dem Fall lokal - sprich auf dem Pfad, den Du vorher ausgewählt hast. Das O steht für die Sortierung, das N dafür, dass nach Namen sortiert wird. Geh einfach in das Verzeichnis und rufe dann den Befehl auf:

Rich (BBCode):
i:
cd \Kinderfilme
dir /B /O:N /S /ad > 'Filme.txt'

Oder schreibe alles in eine Zeile:

Rich (BBCode):
dir /B /O:N /S /ad I:\Kinderfilme > 'Filme.txt'
 
Hallo!

Habe folgenden Code von oben an mich angepasst und das Script ausgeführt:

DATE=$(date +"%Y%m%d_(%H%M%S)")
ls -A /volume1/video/Kinderfilme | tr '\r' '\r\n' | sort > "/volume1/Video/Kinderfilme/liste_$DATE.txt"

Er legt zwar eine liste.txt Datei an, welche aber nur 1 KB groß ist und folgende Inhalt enthält: ....DB Kinderfilme usw..

Das NAS hat über 5 Minuten eine CPU Auslastung von ca. 50 %. Daraufhin habe ich das NAS neugestartet.

Was mache ich bei dem Befehl falsch?
Beim alten Code

DATE=$(date +"%Y%m%d_(%H%M%S)")
ls -R /volume1/vidoe/Kinderfilme | sort > "/volume1/video/Kinderfilme/liste_$DATE.txt"

hatte ich folgendes Problem:

Wenn ich dieses Textfile mit dem normalen Windows Editor öffne, steht alles in einer Wurst. Wenn ich es mit WordPad öffne, stehen auf den ersten Seiten die Verzeichnisnamen und unten dann die Dateinamen.
Super wäre es, wenn er mir, egal mit welchem Editor ich das Textfile öffne, pro Zeile den Pfad inkl. Dateinamen anzeigt. Wäre das noch irgendwie möglich?
 
Zuletzt bearbeitet:
Ich kenne die Option -A für das Kommando ls nicht. Selbst wenn es die geben mag, wird sie vermutlich von der abgespeckten DSM-Version nicht unterstützt werden. Ich würde mir an Deiner Stelle statt der tr-Transformation einen vernünftigen, kostenlosen Editor wie notepad++ unter Windows installierst, Dann kannst Du auch die Datei, die der "alte" Code liefert, problemlos ansehen. Ansonsten tut es vielleicht dieser Code:

Rich (BBCode):
DATE=$(/bin/date +"%Y%m%d_(%H%M%S)")
ls -R /volume1/video/Kinderfilme | sort | tr '\r' '\r\n' > "/volume1/Video/Kinderfilme/liste_$DATE.txt"
 
Hallo!

Danke für den Code. Ich werde ihn zu Hause dann ausprobieren. Ich habe bereits mit dem alten Code die Datei mit Notepad++ geöffnet, half aber auch nichts. Die Ordner standen alle ganz oben und anschließend alle Dateien extra darunter. Ich hoffe, dass das mit deinem Code besser aussieht.
 
Hallo!

Habs soeben ausprobiert, das Problem ist noch immer das gleiche. Es werden oben alle Ordner samt Unterordner angezeigt und dann kommen unter einander alle Filme (Dateien). Ich hätte es gerne, dass der vollständige Pfad samt Unterordner und Film (Datei) in einer Zeile steht.
Ich hoffe, dass mir noch jemand helfen kann.
 
Natürlich, jetzt verstehe ich endlich. Probiere es einmal hiermit:

Rich (BBCode):
DATE=$(/bin/date +"%Y%m%d_(%H%M%S)")
find /volume1/video/Kinderfilme | sort | tr '\r' '\r\n' > "/volume1/Video/Kinderfilme/liste_$DATE.txt"

In notepad++ kannst Du übrigens folgendermaßen ganz einfach sortieren:

Bearbeiten / Zeilenoperationen / Zeilen aufsteigend sortieren.
 
Ich kenne die Option -A für das Kommando ls nicht. Selbst wenn es die geben mag, wird sie vermutlich von der abgespeckten DSM-Version nicht unterstützt werden.

Ist auch unter der abgespeckten busybox (ash) unter DSM vorhanden.

Rich (BBCode):
-A, --almost-all
	      do not list implied . and ..

Die relativen Verzeichnispfade . und .. werden damit nicht gelistet.

Gruß
luddi
 
sorry, aber ich hab bei meinem Notepad++ unter dem Menüpunkt "Bearbeiten" kein Untermenü "Zeilenoperationen"
 
Habe oben neuen Code eingefügt, probier den bitte einmal aus.
 
Ist auch unter der abgespeckten busybox (ash) unter DSM vorhanden.

Rich (BBCode):
-A, --almost-all
	      do not list implied . and ..

Die relativen Verzeichnispfade . und .. werden damit nicht gelistet.

Ah, danke für den Hinweis, hilft aber hier nicht weiter - vor allem nicht als Substitut für -R.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat