저는 터미널 관련 내용을 처음 접했고 위 주제에 대한 답변을 찾을 수 없습니다.
내 OS에서 터미널을 사용하여 이 작업을 어떻게 수행할 수 있나요?
답변1
그리고 perl
:
perl -MPOSIX -le 'for (<*.jpg>) {
$d=strftime"%Y-%m-%d",localtime((stat$_)[9]);
mkdir$d;rename$_,"$d/$_" or warn "rename $_: $!\n"}'
그리고 zsh
:
zmodload zsh/stat
for f (*.jpg) {stat -F %F -A d +mtime -- $f && mkdir -p $d && mv -- $f $d}
답변2
OSX와 함께통계자료:
for file in *; do
dir="$(stat -t %Y%m%d%H%M%S -f %Sm -- "$file")"
mkdir -p "$dir"
mv -- "$file" "$dir/$file"
done
GNU stat 사용(예: Linux 또는 Cygwin에서):
for file in *; do
dir="$(stat -c %Y -- "$file")"
mkdir -p "$dir"
mv -- "$file" "$dir/$file"
done
그러면 각 파일이 mtime(에포크)을 따라 명명된 디렉터리로 이동됩니다.
디렉토리 모양을 보다 세밀하게 제어하려면 GNU 날짜를 사용하여 할당 줄을 다음과 같이 변경하여 형식을 다시 지정할 수 있습니다.
dir="$(date -d @"$(stat -c %Y -- "$file")" +%F)"
man date
사용할 수 있는 날짜 형식 사양에 대한 정보는 참고자료를 참조하세요 . 이 경우는 %F
다음과 같습니다.
%F 전체 날짜, %Y-%m-%d와 동일