2016-04-04 10 views
-2

Ich möchte einige Dateien in einem Verzeichnis verschieben, wobei die Dateinamenslänge als Kriterium verwendet wird.Verschieben von Dateien basierend auf der Länge des Dateinamens

Zum Beispiel möchte ich alle Dateien länger als 10 Zeichen verschieben.

Ich nahm an, ich brauche eine if-Schleife im Bash-Skript, aber ich bin mir nicht sicher, wie es weitergehen soll.

+1

Verwenden Sie eine Schleife und diese http://unix.stackexchange.com/questions/92463/in-bash-how-does-one-determining-the-length-of-filename. Suchen Sie online nach Loops in bash. –

+1

Ich weiß eigentlich nicht, wie ich all diese Dinge machen soll, aber lass uns einen Schritt nach dem anderen machen ... Du kennst bereits einige der Funktionen, die du brauchst; Nämlich, Dateien in einem Verzeichnis zu finden, die Länge einer Zeichenkette zu ermitteln, einen Vergleich (weniger als/mehr als) durchzuführen und Dateien zu verschieben. So wird [die Länge eines Strings gefunden] (https://stackoverflow.com/questions/17368067/length-of-string-in-bash), der 'ls' Befehl listet den Inhalt eines Verzeichnisses auf,' mv 'wird verwendet, um Dateien zu verschieben, und' wenn [some_condition] 'verwendet werden kann, um Ausdrücke zu vergleichen/zu testen. Versuchen Sie damit zu arbeiten und suchen Sie nach Beispielen und Manpages. – jDo

Antwort

2

Verwendung dieser Vorlage

for f in *; do if [ ${#f} -gt 10 ]; then echo $f; fi; done 

Echo mit Ihrem Befehl mv ersetzen.

beachten Sie, dass Verzeichnisse auch in der Liste sein werden.