{"id":177,"date":"2014-05-13T10:13:29","date_gmt":"2014-05-13T08:13:29","guid":{"rendered":"http:\/\/blog.defrent.de\/?p=177"},"modified":"2019-03-21T18:14:19","modified_gmt":"2019-03-21T17:14:19","slug":"dateilisten-fuer-projekte-erzeugen","status":"publish","type":"post","link":"https:\/\/www.defrent.de\/en\/2014\/05\/dateilisten-fuer-projekte-erzeugen\/","title":{"rendered":"Dateilisten f\u00fcr Projekte erzeugen"},"content":{"rendered":"<div class=\"shariff shariff-align-left shariff-widget-align-left\" style=\"display:none\"><ul class=\"shariff-buttons theme-round orientation-horizontal buttonsize-small\"><li class=\"shariff-button mastodon\" style=\"background-color:#ccc\"><a href=\"https:\/\/s2f.kytta.dev\/?text=Dateilisten%20f%C3%BCr%20Projekte%20erzeugen https%3A%2F%2Fwww.defrent.de%2Fen%2F2014%2F05%2Fdateilisten-fuer-projekte-erzeugen%2F via @defrentck@hessen.social\" title=\"Share on Mastodon\" aria-label=\"Share on Mastodon\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#79b428; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"75\" height=\"79\" viewBox=\"0 0 75 79\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M37.813-.025C32.462-.058 27.114.13 21.79.598c-8.544.621-17.214 5.58-20.203 13.931C-1.12 23.318.408 32.622.465 41.65c.375 7.316.943 14.78 3.392 21.73 4.365 9.465 14.781 14.537 24.782 15.385 7.64.698 15.761-.213 22.517-4.026a54.1 54.1 0 0 0 .01-6.232c-6.855 1.316-14.101 2.609-21.049 1.074-3.883-.88-6.876-4.237-7.25-8.215-1.53-3.988 3.78-.43 5.584-.883 9.048 1.224 18.282.776 27.303-.462 7.044-.837 14.26-4.788 16.65-11.833 2.263-6.135 1.215-12.79 1.698-19.177.06-3.84.09-7.692-.262-11.52C72.596 7.844 63.223.981 53.834.684a219.453 219.453 0 0 0-16.022-.71zm11.294 12.882c5.5-.067 10.801 4.143 11.67 9.653.338 1.48.471 3 .471 4.515v21.088h-8.357c-.07-7.588.153-15.182-.131-22.765-.587-4.368-7.04-5.747-9.672-2.397-2.422 3.04-1.47 7.155-1.67 10.735v6.392h-8.307c-.146-4.996.359-10.045-.404-15.002-1.108-4.218-7.809-5.565-10.094-1.666-1.685 3.046-.712 6.634-.976 9.936v14.767h-8.354c.109-8.165-.238-16.344.215-24.5.674-5.346 5.095-10.389 10.676-10.627 4.902-.739 10.103 2.038 12.053 6.631.375 1.435 1.76 1.932 1.994.084 1.844-3.704 5.501-6.739 9.785-6.771.367-.044.735-.068 1.101-.073z\"\/><defs><linearGradient id=\"paint0_linear_549_34\" x1=\"37.0692\" y1=\"0\" x2=\"37.0692\" y2=\"79\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#6364FF\"\/><stop offset=\"1\" stop-color=\"#563ACC\"\/><\/linearGradient><\/defs><\/svg><\/span><\/a><\/li><li class=\"shariff-button linkedin\" style=\"background-color:#ccc\"><a href=\"https:\/\/www.linkedin.com\/sharing\/share-offsite\/?url=https%3A%2F%2Fwww.defrent.de%2Fen%2F2014%2F05%2Fdateilisten-fuer-projekte-erzeugen%2F\" title=\"Share on LinkedIn\" aria-label=\"Share on LinkedIn\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#79b428; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 27 32\"><path fill=\"#0077b5\" d=\"M6.2 11.2v17.7h-5.9v-17.7h5.9zM6.6 5.7q0 1.3-0.9 2.2t-2.4 0.9h0q-1.5 0-2.4-0.9t-0.9-2.2 0.9-2.2 2.4-0.9 2.4 0.9 0.9 2.2zM27.4 18.7v10.1h-5.9v-9.5q0-1.9-0.7-2.9t-2.3-1.1q-1.1 0-1.9 0.6t-1.2 1.5q-0.2 0.5-0.2 1.4v9.9h-5.9q0-7.1 0-11.6t0-5.3l0-0.9h5.9v2.6h0q0.4-0.6 0.7-1t1-0.9 1.6-0.8 2-0.3q3 0 4.9 2t1.9 6z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button xing\" style=\"background-color:#ccc\"><a href=\"https:\/\/www.xing.com\/spi\/shares\/new?url=https%3A%2F%2Fwww.defrent.de%2Fen%2F2014%2F05%2Fdateilisten-fuer-projekte-erzeugen%2F\" title=\"Share on XING\" aria-label=\"Share on XING\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#79b428; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 25 32\"><path fill=\"#126567\" d=\"M10.7 11.9q-0.2 0.3-4.6 8.2-0.5 0.8-1.2 0.8h-4.3q-0.4 0-0.5-0.3t0-0.6l4.5-8q0 0 0 0l-2.9-5q-0.2-0.4 0-0.7 0.2-0.3 0.5-0.3h4.3q0.7 0 1.2 0.8zM25.1 0.4q0.2 0.3 0 0.7l-9.4 16.7 6 11q0.2 0.4 0 0.6-0.2 0.3-0.6 0.3h-4.3q-0.7 0-1.2-0.8l-6-11.1q0.3-0.6 9.5-16.8 0.4-0.8 1.2-0.8h4.3q0.4 0 0.5 0.3z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button facebook\" style=\"background-color:#ccc\"><a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https%3A%2F%2Fwww.defrent.de%2Fen%2F2014%2F05%2Fdateilisten-fuer-projekte-erzeugen%2F\" title=\"Share on Facebook\" aria-label=\"Share on Facebook\" role=\"button\" rel=\"nofollow\" class=\"shariff-link\" style=\"; background-color:#79b428; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 18 32\"><path fill=\"#3b5998\" d=\"M17.1 0.2v4.7h-2.8q-1.5 0-2.1 0.6t-0.5 1.9v3.4h5.2l-0.7 5.3h-4.5v13.6h-5.5v-13.6h-4.5v-5.3h4.5v-3.9q0-3.3 1.9-5.2t5-1.8q2.6 0 4.1 0.2z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button twitter\" style=\"background-color:#ccc\"><a href=\"https:\/\/twitter.com\/share?url=https%3A%2F%2Fwww.defrent.de%2Fen%2F2014%2F05%2Fdateilisten-fuer-projekte-erzeugen%2F&text=Dateilisten%20f%C3%BCr%20Projekte%20erzeugen\" title=\"Share on X\" aria-label=\"Share on X\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#79b428; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path fill=\"#000\" d=\"M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0\"\/><\/svg><\/span><\/a><\/li><\/ul><\/div><p>Bei gr\u00f6\u00dferen Projekten will man manchmal wissen, welche Dateien (eines bestimmten Typs) sich im Projektverzeichnis befinden. Daf\u00fcr gibt es hier je eine schnelle L\u00f6sung f\u00fcr Windows und Linux. Nat\u00fcrlich nur mit Bordmitteln.<\/p>\n<p><!--more--><\/p>\n<div id=\"attachment_186\" style=\"width: 310px\" class=\"wp-caption alignright\"><a href=\"https:\/\/www.defrent.de\/wp-content\/uploads\/2014\/05\/WinR_cmd.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-186\" class=\"wp-image-186 size-medium\" src=\"http:\/\/www.defrent.de\/wp-content\/uploads\/2014\/05\/WinR_cmd-300x153.png\" alt=\"Win+R_cmd\" width=\"300\" height=\"153\" srcset=\"https:\/\/www.defrent.de\/wp-content\/uploads\/2014\/05\/WinR_cmd-300x153.png 300w, https:\/\/www.defrent.de\/wp-content\/uploads\/2014\/05\/WinR_cmd.png 413w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-186\" class=\"wp-caption-text\">Auf Bilder klicken, um zu vergr\u00f6\u00dfern.<\/p><\/div>\n<h2>F\u00fcr Windows<\/h2>\n<p>Die L\u00f6sung geht \u00fcber die Kommandozeile, zumindest ein Mal &#8211; man k\u00f6nnte die Befehle auch in einer Batch-Datei ablegen und zuk\u00fcnftig den Ordner, in dem Dateien gelistet werden sollen, auf die .bat ziehen. Die Kommandozeile \u00f6ffnen wir mit <code>Windows+R<\/code>, der Eingabe von <code>cmd<\/code> und <code>OK<\/code>. Mit dem Befehl <tt>cd<\/tt> bewegen wir uns dann zum Pfad des Projektverzeichnisses, z.B. <tt>cd C:\\Users\\Benutzername\\Documents\\Projekte\\test<\/tt> (oder so).<\/p>\n<p>Es gibt allerdings einen einfacheren Weg: Wir rufen mit <code>Windows+E<\/code> den Explorer auf und \u00f6ffnen unser &#8220;Projekte&#8221;-Verzeichnis &#8211; also das Verzeichnis 1 Ebene \u00fcber dem Verzeichnis, in das wir eigentlich wollen. Dann halten wir die Umschalt-Taste gedr\u00fcckt und rechtsklicken auf das gew\u00fcnschte Projektverzeichnis. Im Kontextmen\u00fc erscheint dann der neue Eintrag <code>Eingabeaufforderung hier \u00f6ffnen<\/code>. Dann \u00f6ffnet sich die Kommandozeile gleich dort, wo wir hinwollen. <a href=\"https:\/\/www.defrent.de\/wp-content\/uploads\/2014\/05\/WinE_cmd.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-187\" src=\"https:\/\/www.defrent.de\/wp-content\/uploads\/2014\/05\/WinE_cmd.png\" alt=\"Win+E -&gt; Alt+Rechtsklick auf Verzeichnis =&gt; cmd \u00f6ffnet im Verzeichnis\" width=\"340\" height=\"145\" srcset=\"https:\/\/www.defrent.de\/wp-content\/uploads\/2014\/05\/WinE_cmd.png 679w, https:\/\/www.defrent.de\/wp-content\/uploads\/2014\/05\/WinE_cmd-300x128.png 300w\" sizes=\"auto, (max-width: 340px) 100vw, 340px\" \/><\/a><\/p>\n<p>Auf der Kommandozeile angekommen, zeigt uns der Befehl <code>dir<\/code> den Verzeichnisinhalt mit Datum, Uhrzeit, Dateigr\u00f6\u00dfe und Dateinamen, sowie die Anzahl der Verzeichnisse und Dateien. F\u00fcr einen ersten Blick reicht das, aber jetzt kommt die K\u00fcr: Mit der Optionen <code>\/B<\/code> erhalten wir eine einfache Liste von Dateien, 1 Datei pro Zeile. Und weil wir vielleicht nur bestimmte Dateien im Projektordner in unserer \u00dcbersicht wollen, k\u00f6nnen wir einen Filter setzen, z.B. <code>*.txt<\/code> f\u00fcr Textdateien, <code>*.docx<\/code> f\u00fcr Word-Dateien, etc. Der Befehl in G\u00e4nze: <code>dir \/B *.pdf<\/code><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-188 size-medium\" src=\"http:\/\/www.defrent.de\/wp-content\/uploads\/2014\/05\/dir_B_pdf-300x151.png\" alt=\"Kommandozeile: dir \/B *.pdf\" width=\"300\" height=\"151\" srcset=\"https:\/\/www.defrent.de\/wp-content\/uploads\/2014\/05\/dir_B_pdf-300x151.png 300w, https:\/\/www.defrent.de\/wp-content\/uploads\/2014\/05\/dir_B_pdf.png 680w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>Windows kann zwar mit der dir-Option <code>\/S<\/code> auch alle Unterverzeichnisse mit in die Suche einbeziehen, gibt dann aber im Gegensatz zu Linux selbst mit der oben genannten Option <code>\/B<\/code> f\u00fcr jede Datei den kompletten Pfad mit an. Dies verschlechtert die \u00dcbersichtlichkeit bei langen Pfaden enorm. Probieren Sie es einfach aus: <code>dir \/S \/B<\/code><\/p>\n<p>Jetzt sind wir soweit, diese Ausgabe f\u00fcr uns nutzbar zu machen. Wir leiten sie n\u00e4mlich in eine Textdatei um. Das geht ganz einfach, indem man hinter den gew\u00fcnschten Befehl das &#8220;Gr\u00f6\u00dfer als&#8221;-Zeichen setzt, gefolgt vom gew\u00fcnschten Dateinamen: <code>dir \/B *.pdf &gt; pdf-dateiliste.txt<\/code> Diese Textdatei enth\u00e4lt dann unsere Dateiliste, die wir weiterverwenden k\u00f6nnen, z.B. um sie in unser Angebot oder die Rechnung zu kopieren oder um in der Textdatei (oder einer Excel-Tabelle) unsere Arbeitszeit je Datei zu erfassen. Mit den erfassten Zeiten k\u00f6nnen wir z.B. am Ende pr\u00fcfen, ob unser effektiver Stundenlohn stimmt, ob wir den Zeilenpreis erh\u00f6hen m\u00fcssen oder ob wir stattdessen Luft f\u00fcr Rabatte haben. Au\u00dferdem hilft uns das, Kunden in Zukunft zuverl\u00e4ssiger sagen zu k\u00f6nnen, wie viel Zeit ein Auftrag von dieser Gr\u00f6\u00dfe vermutlich ben\u00f6tigen wird.<\/p>\n<p>Wenn wir auch eine Textdatei brauchen, in der die Anzahl der Dateien erfasst ist, k\u00f6nnen wir diese mit <code>DIR \/A-D \/B | FIND \/C \/V \"\"<\/code> f\u00fcr das aktuelle Verzeichnis erfassen und mit\u00a0<code>DIR \/A-D \/B \/S | FIND \/C \/V \"\"<\/code> f\u00fcr das derzeitige Verzeichnis plus aller Unterverzeichnisse. Beide Befehle k\u00f6nnen wie oben mit <code>&gt; dateianzahl.txt<\/code> in eine Datei umgeleitet und f\u00fcr sp\u00e4ter gespeichert werden.<\/p>\n<p>Mehr Tricks f\u00fcr die Kommandozeile finden Sie zum Beispiel <a title=\"Externer Link: Short command line tips\" href=\"http:\/\/www.robvanderwoude.com\/shorts.php\" target=\"_blank\" rel=\"noopener noreferrer\">hier<\/a> auf Englisch.<\/p>\n<hr \/>\n<h2>F\u00fcr Linux<\/h2>\n<p>Linuxbenutzer \u00f6ffnen das Gegenst\u00fcck zur Windows-Kommandozeile, eine Shell bzw. ein Terminal (z.B. per F12 f\u00fcr <a title=\"Externer Link: Guake @ GitHub\" href=\"https:\/\/github.com\/Guake\/guake\/\" target=\"_blank\" rel=\"noopener noreferrer\">Guake<\/a>), wechseln mit <code>cd ~\/projekte\/test<\/code> ins Projektverzeichnis und lassen sich mit <code>ls<\/code> den Inhalt ausgeben.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-189 size-medium\" src=\"http:\/\/www.defrent.de\/wp-content\/uploads\/2014\/05\/ls-1p_ls-1pR-300x254.png\" alt=\"Linux: ls -1p und ls -1pR mit Unterverzeichnissen\" width=\"300\" height=\"253\" srcset=\"https:\/\/www.defrent.de\/wp-content\/uploads\/2014\/05\/ls-1p_ls-1pR-300x254.png 300w, https:\/\/www.defrent.de\/wp-content\/uploads\/2014\/05\/ls-1p_ls-1pR.png 330w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/> Damit daraus etwas Vergleichbares wie oben beschrieben wird, ben\u00f6tigen wir zwei Optionen: <code>-1<\/code> (die Zahl 1, nicht der Buchstabe l) listet nur eine Datei pro Zeile auf, anstatt die Ausgabe in mehreren Spalten anzuordnen und <code>-p<\/code> markiert Verzeichniseintr\u00e4ge durch einen angeh\u00e4ngten <code>\/<\/code> Schr\u00e4gstrich.<\/p>\n<p>Vorsicht: Die Optionsbuchstaben sind &#8220;case sensitive&#8221;, d.h. man muss auf Gro\u00df- und Kleinschreibung achten! Daf\u00fcr muss man unter Linux nicht jede Option einzeln anf\u00fcgen, sondern kann sie nach einem Minuszeichen zusammenschreiben.<\/p>\n<p>Wie bei Windows k\u00f6nnen wir am Ende <code>*.xyz<\/code> anh\u00e4ngen, um nach bestimmten Dateitypen zu filtern, z.B. <code>*.txt<\/code> (Textdateien) oder <code>*.odt<\/code> (OpenDocument-Dateien). Das sieht dann so aus: <code>ls -1p *.txt<\/code> Weitere interessante Optionen sind <code>-R<\/code>, dann arbeitet <code>ls<\/code> rekursiv, das hei\u00dft, es bezieht die Unterverzeichnisse in die Auflistung mit ein; <code>-B<\/code> ignoriert Backup-Dateien (solche, die mit Tilde ~ anfangen).<\/p>\n<p>Leider gibt es keine einfache Option, <code>ls<\/code> am Ausgeben von Verzeichnissen zu hindern, <code>ls -p pfad\/ | grep -Ev '\/'<\/code> nutzt das Tool <code>grep<\/code>, um den mit der <code>ls<\/code>-Option <code>-p<\/code> an Verzeichnisse angeh\u00e4ngten Schr\u00e4gstrich zu finden und diese auszufiltern.<\/p>\n<p>Jetzt m\u00fcssen wir die Ausgabe nur noch, wie bei Windows, in eine Datei umleiten: <code>ls -1pRB *.txt | grep -Ev '\/' &gt; .\/dateiliste.txt<\/code><\/p>\n<p>Die Anzahl der Dateien kann man festhalten, indem man die Ausgabe von <code>ls<\/code> mit einer Pipe an <code>wc<\/code> \u00fcbergibt, bevor man sie an eine Datei weiterleitet: <code>ls -p | grep -Ev '\/' | wc -l &gt; .\/dateianzahl.txt<\/code><\/p>\n<p>Mehr Tricks f\u00fcr die Konsole finden Sie zum Beispiel <a title=\"Externer Link: LinuxWiki LS\" href=\"http:\/\/linuxwiki.de\/ls\" target=\"_blank\" rel=\"noopener noreferrer\">hier<\/a> auf Englisch.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bei gr\u00f6\u00dferen Projekten will man manchmal wissen, welche Dateien (eines bestimmten Typs) sich im Projektverzeichnis befinden. Daf\u00fcr gibt es hier je eine schnelle L\u00f6sung f\u00fcr Windows und Linux. Nat\u00fcrlich nur mit Bordmitteln.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[21,23],"tags":[58,70,74],"class_list":["post-177","post","type-post","status-publish","format-standard","hentry","category-de","category-howto-de","tag-kommandozeile","tag-shell","tag-terminal"],"aioseo_notices":[],"featured_image_src":null,"featured_image_src_square":null,"author_info":{"display_name":"Christopher K\u00f6bel","author_link":"https:\/\/www.defrent.de\/en\/author\/defrenter\/"},"_links":{"self":[{"href":"https:\/\/www.defrent.de\/en\/wp-json\/wp\/v2\/posts\/177","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.defrent.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.defrent.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.defrent.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.defrent.de\/en\/wp-json\/wp\/v2\/comments?post=177"}],"version-history":[{"count":9,"href":"https:\/\/www.defrent.de\/en\/wp-json\/wp\/v2\/posts\/177\/revisions"}],"predecessor-version":[{"id":1302,"href":"https:\/\/www.defrent.de\/en\/wp-json\/wp\/v2\/posts\/177\/revisions\/1302"}],"wp:attachment":[{"href":"https:\/\/www.defrent.de\/en\/wp-json\/wp\/v2\/media?parent=177"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.defrent.de\/en\/wp-json\/wp\/v2\/categories?post=177"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.defrent.de\/en\/wp-json\/wp\/v2\/tags?post=177"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}