2016-04-29 12 views
1

Derzeit habe ich ein Shell-Skript, das funktioniert, aber ich brauche mehr davon. (Ich bin schrecklich mit Shell ...)Dateierweiterung auf Shell-Skript ausschließen

Derzeit verschiebt es Dateien der Erweiterung Typ TXT und CSV in ein bestimmtes Verzeichnis. Ich brauche es auch, um dann alle anderen Dateien, die nicht txt und csv sind, in ein anderes Verzeichnis für die Archivierung zu verschieben.

Gibt es einen einfachen Ansatz, nach dem Laufen:

mv *.txt work 
mv *.csv work 

mir erlauben werden, dann: wenn

mv *.* 

txt und csv Ohne? Ich schätze jede Hilfe/Eingabe.

Antwort

1

Klingt, als hätten Sie fast Ihre Antwort. Versuchen:

mv *.txt work 
mv *.csv work 
mv * archive 

Dies funktioniert, weil durch die Zeit, die die letzte Zeile erreicht, alle txt und csv-Dateien wurden bereits verschoben.

+0

Ah! Vielen Dank! Das macht viel Sinn. :) Danke für deine schnelle Antwort! – TCM

1

Die Antwort von GreenGiant ist sehr sinnvoll, wenn Sie versuchen, diese Dateien zu verschieben, nachdem Sie alle Dateien verschoben haben, die Sie nicht dorthin verschieben möchten. Angenommen, Sie möchten, dass die TXT- und CSV-Dateien im aktuellen Verzeichnis verbleiben. Die folgende Lösung deckt diesen Anwendungsfall mit Suchen ab.

find . -not -path "." -not -name "*.txt" -not -name "*.csv" -exec mv {} work \; 

Dies sieht komplizierter aus, ist aber in bestimmten Situationen nützlicher.

0
mv *.txt *.csv a_directory 
mv * other_directory 
+0

Während dieser Code die Frage beantworten kann, wäre es besser, einen Kontext einzubeziehen und zu erklären, wie es funktioniert und wann es zu verwenden ist. Nur-Code-Antworten sind auf lange Sicht nicht nützlich. – Bono

Verwandte Themen