확장자는 동일하지만 연도가 다른 여러 파일을 이동하는 Linux의 move 명령

확장자는 동일하지만 연도가 다른 여러 파일을 이동하는 Linux의 move 명령

폴더에 2013년부터 2015년까지의 약 500개의 .txt 파일이 있고 2013년과 2014년의 모든 파일을 다른 폴더로 이동해야 합니다.

답변1

"2013년 및 2014년"이 "2013/2014년 수정 시간"을 의미한다고 가정하면 다음을 사용하여 파일 목록을 얻을 수 있습니다.

stat -c '%y %n' * | grep -v '^2015' | cut -d " " -f 4-

이것이 하는 일:

stat -c '%y %n'

마지막 수정 시간과 파일 이름 인쇄

*

폴더의 모든 파일 중

grep -v '^2015'

2015년은 제외

잘라내기 -d " " -f 4-

마지막으로 파일 이름만 남기고 타임스탬프를 제거합니다(개행 문자가 포함된 이상한 파일 이름이 없다고 가정).

그런 다음 과 같은 도구 xargs나 for 루프(문자가 허용되는 경우)를 사용하여 파일을 처리하여 원하는 폴더로 이동할 수 있습니다.

답변2

해당 파일 이름에 연도가 포함되어 있으면 매우 간단합니다. 터미널에 익숙하다면 여기에 예가 있습니다.

2013년의 모든 파일을 '2013files'라는 폴더로 이동하려고 하며 이름이 '2013 stuff.txt' 또는 'january 2013.txt'와 같다고 가정해 보겠습니다.

폴더로 이동

cd /path/to/your/folder/

파일을 이동할 폴더를 만듭니다.

mkdir 2013files

그런 다음 이름에 '2013'이 포함된 모든 파일을 이동합니다.

rename  ./*2013*.txt  ./2013files

중요: 'rename' 명령을 사용하기 전에 대신 'cp'를 사용하여 잘못 입력한 것이 없는지 확인하십시오. 그렇지 않으면 파일이 하나만 남을 수 있습니다.

중요 (2): 항상 무엇보다 먼저 파일을 백업하세요

관련 정보