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
그러면 필요한 모든 파일이 별도의 하위 폴더에 저장됩니다.