日付を含むファイルを保存するためのサブディレクトリの作成についてサポートが必要です

日付を含むファイルを保存するためのサブディレクトリの作成についてサポートが必要です

このフォーラムは初めてですが、RHEL やスクリプトについては初めてではありません。ただし、これはちょっと面倒です。次のファイルがあります:

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

次のようなディレクトリに保存したいと思います。

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

ディレクトリに配置するときに、現在のファイル名も保持したいと思います。また、これを bash で実行したいと思います。

何かご意見は?

答え1

簡単な方法としては、探すawkそしてxargs*.msg ファイルが存在する場所を置き換えるだけです:

#!/bin/bash
files="$(find <your_directory> -type f -name '*.msg' | sed 's#.*/##')"
echo "$files" | awk -F '-' '/1/ {print $1"/"$2"/"$3"/"}' | xargs -I {} mkdir -p {}
echo "$files" | awk -F '-' '/1/ {print $1"/"$2"/"$3"/" $0}' | xargs -I {} touch {} 

結果 :

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

関連情報