Benötigen Sie Hilfe beim Erstellen von Unterverzeichnissen zum Speichern von Dateien mit Datumsangaben

Benötigen Sie Hilfe beim Erstellen von Unterverzeichnissen zum Speichern von Dateien mit Datumsangaben

Neu in diesem Forum, aber nicht neu bei RHEL oder Scripting. Das hier nervt mich allerdings ein bisschen. Ich habe die folgenden Dateien:

2019-05-01-00.34.00.msg 
2019-05-02-00.36.00.msg
2019-06-14-01.38.00.msg

Ich möchte sie in Verzeichnissen wie diesem speichern:

/2019/05/01/<Filename>
/2019/05/02/<Filename>
/2019/06/14/<Filename>

Ich möchte auch den aktuellen Dateinamen beibehalten, wenn ich sie in den Verzeichnissen platziere. Außerdem möchte ich dies mit Bash tun.

Irgendwelche Gedanken?

Antwort1

Hier sind drei Dateien,

$ ls
2019-05-01-00.34.00.msg  2019-05-02-00.36.00.msg  2019-06-14-01.38.00.msg

Verwenden Sie den folgenden Einzeiler in Ihrem Terminal,

$ for i in *.msg;do mkdir -p $(awk -F- '{print $1"/"$2"/"$3}' <<< $i) && mv $i $(awk -F- '{print $1"/"$2"/"$3"/"$0}' <<< $i); done

Als nächstes sehen Sie den Baum,

$ tree
.
└── 2019
    ├── 05
    │   ├── 01
    │   │   └── 2019-05-01-00.34.00.msg
    │   └── 02
    │       └── 2019-05-02-00.36.00.msg
    └── 06
        └── 14
            └── 2019-06-14-01.38.00.msg

6 directories, 3 files

verwandte Informationen