특정 타임스탬프가 있는 파일을 복사하는 명령

특정 타임스탬프가 있는 파일을 복사하는 명령

특정 날짜에 현재 디렉터리에서 다른 디렉터리로 파일을 복사하려면 명령이 필요합니다.

-rw-r----- 1 schmidt schmidt 276423 set 03 10:31 'event01.csv'
-rw-r----- 1 schmidt schmidt 283861 set 03 10:34 'event02.csv'
-rw-r----- 1 schmidt schmidt 280644 set 03 10:40 'event03.csv'
-rw-r----- 1 schmidt schmidt 270234 set 03 03:26 'event04.csv'
-rw-r----- 1 schmidt schmidt 293488 set 12 06:43 'event05.csv'
-rw-r----- 1 schmidt schmidt 287417 set 12 07:48 'event06.csv'
-rw-r----- 1 schmidt schmidt 280519 set 12 10:19 'event07.csv'
-rw-r----- 1 schmidt schmidt 279631 set 12 19:43 'event08.csv'
-rw-r----- 1 schmidt schmidt 286578 set 12 15:15 'event09.csv'
-rw-r----- 1 schmidt schmidt 289830 set 12 18:41 'event10.csv'
-rw-r----- 1 schmidt schmidt 305209 set 19 05:58 'event11.csv'
-rw-r----- 1 schmidt schmidt 308275 set 19 06:20 'event12.csv'
-rw-r----- 1 schmidt schmidt 275015 set 19 14:40 'event13.csv'
-rw-r----- 1 schmidt schmidt 310610 set 19 15:40 'event14.csv'
-rw-r----- 1 schmidt schmidt 311466 set 19 15:41 'event15.csv'
-rw-r----- 1 schmidt schmidt 305241 set 19 15:51 'event16.csv'
-rw-r----- 1 schmidt schmidt 291699 set 19 15:56 'event17.csv'

예를 들어, 명령은 "set 12" 타임스탬프가 있는 모든 파일을 디렉토리에 복사해야 합니다 /home/12thsep/.

어떤 아이디어가 있나요?

답변1

날짜 옵션에서 선택할 수 있습니다.find

find . -maxdepth 1 -type f -newerat '2019-09-19' ! -newerat '2019-09-20' -exec mv '{}' /home/12thsep \;

답변2

find올바른 매개변수를 사용할 수 있습니다 mtime. 예를 들어:

mkdir <dest_path> && find <source path> -mtime -X -a -mtime +Y -exec mv {} <dest_path>/ \;

그 중 X는 "내일 모레"를 나타내고 Y는 "어제"를 나타냅니다. 를 사용하면 -a지정한 find두 조건 사이에 AND가 사용됩니다. 인용하다맨페이지 찾기사용할 구문에 대한 자세한 내용.

답변3

이는 다음을 통해 수행할 수 있습니다.

ls -alF|grep "set 12" >> logxa00.txt

cat logxa00.txt| awk '{print $9}' > logxa01.txt

xargs -a logxa01.txt cp -p -t /home/12thsep/

답변4

이 시도. 디렉터리를 나열하고, 날짜 스탬프를 찾기 위해 grep을 수행하고, 각 파일 이름(매개변수 $9)에서 대상 디렉터리로 복사하면 됩니다. 추가 따옴표는 이름에 공백이 포함된 파일을 캡처합니다.

ls -al | grep -i "set 12" | awk -F' ' '{ system("cp \"" $9 "\" /home/12thsep") }'

향후 다른 애플리케이션에 맞게 쉽게 수정할 수 있어야 합니다.

관련 정보