월요일부터 금요일까지 파일 세트를 만들었습니다.
a -- > 08/20
a1---> 08/21
a2---> 08/21
a3---> 08/21
a4---> 08/22
a5 --> 08/23
방금 08/21 파일을 다른 폴더로 옮겼습니다.
어떻게 해야 하나요?
답변1
파일의 수정 시간이 보존된다고 가정합니다(파일이 생성된 후에는 수정되지 않습니다). 그런 다음 find
명령과 옵션을 사용하여 데이터가 며칠 전에 마지막으로 수정된 파일을 -mtime
검색 할 수 있습니다 . X
따라서 48시간 전에 생성된 현재 작업 디렉토리의 모든 파일을 찾으려면 다음을 사용하십시오.
find ./ -type f -mtime 2
다른 디렉터리로 이동
find ./ -type f -mtime 2 -exec mv {} DEST_DIR/ \;
또한 현재 날짜와 파일을 요청한 날짜 사이의 일수를 추정해 볼 수 있습니다(이 경우 22일).
DAY_CUR="`date +%d`"
DAY_REQ=22
DAY_DIF=$((DAY_CUR - DAY_REQ))
find ./ -type f -mtime $DAY_DIF -exec mv {} DEST_DIR/ \;
코드는 이틀이 서로 다른 두 달의 경우를 처리할 수 없기 때문에 완벽하지는 않지만 진행 방법을 보여줍니다.
답변2
따라서 속성에 따라 파일을 이동하려고 합니다. 이는 파일을 식별하거나 "찾은" 다음 결과를 다른 폴더로 이동해야 함을 의미합니다.
찾기 유틸리티는 훌륭한 작업을 수행합니다 :-)
find
인수 없이 호출하면 전체 폴더 내용이 나열됩니다. 그런 다음 다양한 필터 조건을 지정할 수 있습니다. 전체 목록을 보려면 man find
(http://unixhelp.ed.ac.uk/CGI/man-cgi?find).
여기 몇 가지 예가 있어요.
[..]
-mmin n
File's data was last modified n minutes ago.
-mtime n
File's data was last modified n*24 hours ago. See the comments
for -atime to understand how rounding affects the interpretation
of file modification times.
-newer file
File was modified more recently than file. If file is a sym-
bolic link and the -H option or the -L option is in effect, the
modification time of the file it points to is always used.
[..]
-exec
그런 다음 를 사용 하여 호출 하고 현재 파일에 대한 자리 표시자로 mv
사용할 수 있습니다 .{}
예:
find /some/path/ -mtime +4 -exec mv {} /some/other/path/
전문가 팁: 올바른 파일을 받았는지 확인하기 위해 find
전화할 필요가 없습니다 . :-)-exec
답변3
이 find
명령을 사용하면 해당 날짜에 생성된 파일을 식별하고 파일 이름 패턴을 사용하여 검색을 추가로 제한할 수 있습니다. 파일에서 사용하세요 -exec
.find
mv