60日より古いファイルをgzipに圧縮して、ファイル名の先頭に名前付きサブディレクトリに移動するbashスクリプトを作成する必要があります。以下は、私が使用する必要があるファイルの例です。
-rw-r--r-- 1 X X 0 2012-10-15 11:19 glux21-x1.csv
-rw-r--r-- 1 X X 0 2012-10-15 11:19 GLUX21-x34.csv
-rw-r--r-- 1 X X 0 2012-10-15 11:19 glux226.csv
-rw-r--r-- 1 X X 0 2012-10-15 11:19 glux228.csv
-rw-r--r-- 1 X X 0 2012-10-15 11:19 glux230.csv
-rw-r--r-- 1 X X 0 2012-10-15 11:19 glux232.csv
-rw-r--r-- 1 X X 0 2012-10-15 11:19 glux234.csv
-rw-r--r-- 1 X X 0 2012-10-15 11:19 glux236.csv
-rw-r--r-- 1 X X 0 2012-10-15 11:19 glux255.csv
したがって、たとえばglux21-x1.csvは、GLUX21-x34.csvファイルと同様にgzipで圧縮してglux21サブディレクトリに移動する必要があります。 glux255.csvはglux255サブディレクトリになければなりません。
ベストアンサー1
find . -ctime -60 -maxdepth 1 -type f | while IFS= read x
do
gzip -9 "$x" # compress it
D=${x%%.csv}
D=${D/-*/} # remove suffix and everything after the -
mkdir -p "$D" # create dest sub folder
mv $x.gz "$D" # move it
done
これにより、必要なすべてのファイルが別々のサブフォルダに保存されます。