>

bash 스크립트가 필요합니다. 이것들은 내 파일입니다 :

./2019-01-11_15-00-29_UTC.mp4
./2019-02-10_17-42-18_UTC.mp4
./2019-01-03_14-45-43_UTC.mp4
./2018-12-24_13-00-32_UTC.mp4
./2018-12-09_19-50-59_UTC.mp4
./2019-01-11_14-51-08_UTC.mp4
./2019-01-06_16-41-54_UTC.mp4
./2019-02-03_10-33-33_UTC.mp4
./2019-02-16_18-21-30_UTC.mp4

2 개의 폴더 2018 를 만들고 싶습니다  & 2019  그런 다음 파일을 자신의 폴더로 이동하십시오. 이 코드를 사용합니다 :

ls *.mp4 | awk -F"-" '{print $1}' | while read day file ; do mkdir -p "$day"; mv "$file" "$day"; done

폴더를 만들지 만 이동하지는 않습니다

  • 답변 # 1

    xargs를 사용하여이를 달성 할 수 있습니다.

    ls *.mp4 | xargs -I{} sh -c 'folder=`echo {} | cut -d"-" -f1`;mkdir -p $folder;mv {} $folder/'
    
    

    여기서 전체 파일 이름이 xargs 로 전송됩니다.  그리고 각 파일에 대해 폴더 이름은 cut 를 사용하여 얻습니다.  명령. 그런 다음 파일이 생성 된 폴더로 이동됩니다.

    xargs에 대한 추가 정보 : http://man7.org/linux/man-pages/man1/xargs.1.html

    수정

    for file in *.mp4 ; do
        date=$(echo $file | cut -d'_' -f1)
        year=$(echo $date | cut -d'-' -f1)
        month=$(echo $date | cut -d'-' -f2)
        day=$(echo $date | cut -d'-' -f3)
        mkdir -p $year/$month/$day
        mv $file $year/$month/$day/
    done
    
    

  • 답변 # 2

    오류가 발생하지 않습니까? 내가 그것을 실행하면 나는

    mv: cannot stat '': No such file or directory
    
    
    각 파일마다 한 번씩

    그 이유는 file  루프에 설정되어 있지 않습니다.

    ls *.mp4 | awk -F"-" '{print $1}'
    
    

    연도 목록을 생성합니다

    2018
    2018
    2019
    2019
    2019
    2019
    2019
    2019
    2019
    
    

    이것은 하나의 데이터 열입니다.

    while read day file
    
    

    연도를 day 로 읽습니다.  (일?) 더 이상 데이터가 없으므로 file 를 떠납니다.  비어 있습니다.

    mkdir -p "$day"
    
    

    잘 작동하지만

    mv "$file" "$day"
    
    

    에 평가

    mv "" "2018"
    
    

    이것을 시도해보십시오.

    for f in *.mp4
    do mkdir -p "${f%%-*}" && mv "$f" "${f%%-*}"
    done
    
    

    와이즈 비즈  그냥 ${f%%-*} 를 반환  첫 번째 대시에서 모든 것을 제거했습니다. 결과 :

    $f
    
    
    $: find . ./2018 ./2018/2018-12-09_19-50-59_UTC.mp4 ./2018/2018-12-24_13-00-32_UTC.mp4 ./2019 ./2019/2019-01-03_14-45-43_UTC.mp4 ./2019/2019-01-06_16-41-54_UTC.mp4 ./2019/2019-01-11_14-51-08_UTC.mp4 ./2019/2019-01-11_15-00-29_UTC.mp4 ./2019/2019-02-03_10-33-33_UTC.mp4 ./2019/2019-02-10_17-42-18_UTC.mp4 ./2019/2019-02-16_18-21-30_UTC.mp4

관련 자료

  • 이전 java - 내 코드는 스레드 안전합니까? 그렇지 않은 경우 스레드 안전성을 얻는 방법은 무엇입니까?
  • 다음 태스크 '' - app : mergedebugresources '에 대한 실행이 실패했습니다 안드로이드 스튜디오