2022년 1학기 리눅스시스템프로그래밍 재수강 당시 제출했던 설계과제 목록
- (2023.10.07) P2_보고서.pdf 추가
- (2023.10.10) P2 ssu_sdup 파일 관련 Makefile 설명 추가
- (2023.10.14) P1_보고서.pdf 추가(실행 결과 및 날짜 캡처본 포함), Makefile 내 P2 ssu_sdup의 구현 여부 관련 설명 추가, Makefile 내 P1 ssu_find의 기능 및 구현 여부 관련 설명 추가
- (2024.06.03) P2 ssu_sdup 기본 기능 관련 설명 추가, 실행 사진 추가
- 지정된 파일 또는 디렉토리와 이름과 크기가 동일한 파일 및 디렉토리 검색
- 검색 결과 중 0번 인덱스의 파일과 서로 내용을 비교할 파일을 선택하여 두 파일의 내용 비교 결과를 출력
- 구현 실패했던 과제이나 설계과제1 구현 & 미구현 사항 식별 목적으로 관련 설명 기재
- 리눅스 환경에서 P1 디렉토리째로 다운로드 후 실행
- 리눅스 터미널 실행 후 현재 디렉토리를 P1로 이동
- P1 디렉토리에서 다음의 명령어 입력(실행파일명: ssu_sindex)
$ ./ssu_sindex
$ sudo ./ssu_index
- 리눅스 터미널을 통해 현재 디렉토리를 P1으로 이동 후 Makefile 실행
- ssu_sindex 실행파일이 P1 디렉토리 내부에 존재하지 않는 경우
$ make ssu_sindex
- 기존 오브젝트 파일 및 실행파일 삭제 후 다시 컴파일할 경우 아래 명령어를 순서대로 입력
$ make clear
$ make ssu_sindex
- 명령어 사용법을 출력
학번> help
- 프로그램 실행 후 내장명령어 find를 사용하여 이름과 크기가 같은 파일들의 정보를 리스트 형태로 출력
- 이름이 같은 파일이 디렉토리일 경우 디렉토리 내부에 저장된 파일 크기의 총합을 디렉토리의 크기로 취급
학번> find 파일명 경로명
- find: 이름과 크기가 같은 파일 탐색을 위한 명령어
- 파일명: 탐색할 파일 및 디렉토리 이름
- 경로명: 파일을 탐색할 디렉토리의 저장 경로
- 검색 완료 후 아래 형식대로 명령어 입력
>> 인덱스번호 옵션
- 인덱스번호: 출력된 검색 결과 중 0번 인덱스의 파일과 비교할 파일의 인덱스 번호
- 옵션: 파일 및 디렉토리 비교 시 옵션
- LCS 알고리즘을 응용하여 비교하고자 하는 두 파일의 내용을 행 단위로 대조 후 차이점 출력
- 두 디렉토리의 하위 일반 파일 간 내용 혹은 하위 디렉토리 간 이름 비교 후 차이점 출력
학번> exit
- P1_보고서.pdf 파일 참조
- 지정된 디렉토리 내부에서 지정된 확장자를 가진, md5 또는 sha1 해시값이 서로 동일한 중복 파일의 검색 결과 조회 및 삭제 기능 제공
- 파일명이 다르지만 서로 데이터가 동일한 파일들도 중복 파일로 취급하여 서로 다른 디렉토리에 저장된 동일한 데이터 파일의 저장 위치 조회 가능
- 데이터에 따른 해시값이 동일한 파일끼리 묶은 각각의 리스트는 파일 크기, 해시값, 저장 경로, 마지막 수정시간, 접근시간 순으로 정렬
- 각 데이터별로 크기, 해시값, 중복 파일의 저장 경로, 마지막 접근 및 수정 시간을 출력
- 리눅스 터미널에서 root 디렉토리 및 그 하위 디렉토리 탐색 가능(단, 검색할 확장자를 지정해야 사용 가능)
- 검색된 파일 삭제 시 별도의 삭제 옵션 지정 가능
- 리눅스 환경에서 P2 디렉토리째로 다운로드 후 실행
- 리눅스 터미널 실행 후 현재 디렉토리를 P2로 이동
- P2 디렉토리에서 다음의 명령어 입력(실행파일명: ssu_sdup)
$ ./ssu_sdup
$ sudo ./ssu_sdup
(주의: 명령어를 입력하여 root 디렉토리부터 탐색할 경우, 검색할 파일의 확장자 또는 파일 크기 옵션을 별도로 지정해야 정상 동작)
- 리눅스 터미널을 통해 현재 디렉토리를 P2로 이동 후 Makefile 실행
- ssu_sdup, fmd5, fsha1, help 중 1개라도 실행 파일이 존재하지 않는 경우
$ make all
- 기존 오브젝트 파일 및 실행 파일 삭제 후 다시 컴파일할 경우 아래 명령어를 순서대로 입력
$ make clean
$ make all
학번>> help
- 중복 파일 리스트: 해시값이 동일한 파일끼리 모은 리스트
- 중복 파일 리스트 1개당 인덱스 개수는 최소 2개
- 디렉토리 내부에서 유일하게 존재하는 파일은 ssu_sdup의 검색 결과에서 제외
학번>> fmd5 확장자명 최소크기 최대크기 디렉토리명
- fmd5: md5 해시값을 기준으로 동일한 파일끼리 묶어서 검색 결과 출력
- 확장자명: * 입력 시 모든 파일 검색, *.(확장자) 입력 시 지정된 확장자를 갖는 파일만 검색(구현)
- 최소크기 & 최대크기: 탐색할 파일의 크기 범위 지정, 크기범위 미지정 시 ~ 사용(구현)
- 디렉토리명: 탐색을 수행할 디렉토리, 절대경로와 상대경로 모두 사용 가능(구현)
학번>> fsha1 확장자명 최소크기 최대크기 디렉토리명
- fsha1: sha1 해시값을 기준으로 동일한 파일끼리 묶어서 검색 결과 출력
- 확장자명: * 입력 시 모든 파일 검색, *.(확장자) 입력 시 지정된 확장자를 갖는 파일만 검색(구현)
- 최소크기 & 최대크기: 탐색할 파일의 크기 범위 지정, 크기범위 미지정 시 ~ 사용(구현)
- 디렉토리명: 탐색을 수행할 디렉토리, 절대경로와 상대경로 모두 사용 가능(구현)
- 중복 파일 검색 직후 출력되는 프롬프트에서 삭제할 파일 및 삭제 옵션 지정 가능
>> 파일묶음번호 삭제옵션 [인덱스번호]
-
파일묶음번호: 삭제하고자 하는 파일에 해당하는 리스트의 번호 선택(필수기능, 구현)
-
삭제옵션
-
인덱스번호: d옵션 선택 시에만 추가 입력 가능, 추가 입력 가능 한 리스트 내 해당 인덱스의 파일을 삭제(필수기능, 구현)
>> exit
학번>> exit
- P2_보고서.pdf 파일 참조








