2012-06-08 2 views
2

현재 디렉토리 내의 기본 이름에서 가장 오래된 파일을 찾아야하는 프로젝트에서 작업 중입니다.디렉토리에서 가장 오래된 파일을 확인하십시오.

예를 들어 파일의 기본 이름은 mylog 일 수 있지만 mylog_060620121421.txt와 같은 모든 파일을 조사해야합니다. mylog_에있는 모든 파일 중에서 어떤 파일이 오래된 파일인지 알아야합니다. 즉, 먼저 작성되었지만이를 수행하는 방법을 찾을 수 없습니다.

파일 이름을 나열하는 scandir 명령을 보았지만 파일의 가장 오래된 날짜를 찾는 데 사용할 수있는 방법을 볼 수 없습니다. 리눅스에

+0

프로그래밍 방식으로 수행해야합니까? – JuanZe

+0

c 프로그램 내에서 프로그래밍 방식으로 수행해야합니다. 나는 아직 가장 오래된 파일에 대해 특별한 것을 시도하지 않았으며, scandir을 사용하여 모든 파일을 읽고 파일에 로그 파일이 들어 있는지 확인한 다음 그 이름을 인쇄합니다. 그게 지금까지 있었지만 그럴 수는 없습니다. 가장 오래된 파일을 찾는 주요 부분을 찾으십시오. – Boardy

+0

관련 부분에 대한 파일 이름에서 하위 문자열을 얻는 방법을 살펴보고 (6-14에서와 같이) 거기에서 작업하십시오.이 숙제입니까? –

답변

1

그냥 디렉토리를 입력 :

ls -trl 

이 가장 오래된 파일부터 시작하여 목록을 제공합니다. 당신이 이름을 원하는 경우 직접 당신은 그것을 얻을 수 있습니다 :

ls -tr | head - 1 
+0

대단한 일을 해 주셔서 감사합니다. Windows에서이 작업을 수행 할 수있는 방법이 있습니까? 리눅스 용이지만 이상적으로는 모두 지원해야합니다. 내가 사용하고있는 방법이 윈도우 나 리눅스인지 확인하고이 작업을 수행하기위한 올바른 방법을 실행할 수있는 체크를 할 수 있다고 생각했다. – Boardy

+0

질문에 C가 붙습니다. 제거해야하거나 다른 C 답변을 수락해야합니다. – moodboom

3

사용 합계()
명령을 실행 "사람 -S 2 합계를"그것에 대해 자세한 내용을보실 수 있습니다. structstat가 SYS/stat.h에서 찾을 수 스탯의 구성하는 파일을 나타내는 파일명이 문자열/문자이다

#include <sys/stat.h> 
struct stat structstat; 
stat(filename, &structstat) 
printf("last modified time: %s", ctime(&structstat.st_mtime)); 

*

오래된 파일이 오래된 수정 시간으로 한 것 , structstat.st_mtime 두 가지가 없다면 유형 차단기에 대해 structstat.st_ctime (상태 변경)을 사용할 수 있습니다 ...

관련 문제