Kong Eunho

파일 명령어

2025년 10월 14일 19시
카테고리 - LECTURE, 서버프로그래밍


서버프로그래밍(황승연) 5주차 강의내용

파일 생성과 복사

touch [옵션] [옵션(-t time)] [파일명] : 파일 생성/파일 접근.
해당 파일명이 존재할 경우 접근/수정 시각만 변경.
존재하지 않을 경우 새로 생성.
입력 예 : touch ex_test

옵션 설명
-a 최근에 작업한 파일의 접근시각만 변경 적용
-c 존재하지 않는 파일은 새로 만들지 않음
-m 최근에 작업한 파일의 수정시각만 변경 적용
-t [time] 시각을 직접 입력
time : [[CC]YY]MMDDhhmm[.ss]

입력 예 : touch -t 203508151030 ex_test
    ex_test 파일의 최종 수정시각을 2035년 8월 15일 10시 30분으로 변경.

stat : 파일의 정보(접근/수정 시각 포함) 출력.
touch로 변경된 접근/수정 시각을 stat으로 확인할 수 있음.

cp [옵션] [파일/디렉터리명] [파일/디렉터리명] … : 파일/디렉터리 복사.
입력 예 : cp /etc/hosts text_01
    /etc 디렉터리의 hosts 파일을 복사하여 현재 디렉터리에 text_01로 복사.
입력 예 : cp text_01 temp
    현재 디렉터리의 text_01 파일을 temp 디렉터리에 복사(temp 디렉터리가 존재해야 함).
입력 예 : cp text_01 temp/text_02
    현재 디렉터리의 text_01 파일을 temp 디렉터리에 text_02로 복사(temp 디렉터리가 존재해야 함).
    ※ 쓰기 권한이 없는 디렉터리에 복사 불가.
입력 예 : cp /etc/hosts /etc/services temp
    /etc/hosts와 /etc/services 파일을 복사하여 temp 디렉터리에 복사.

-r 옵션 : 복사하는 디렉터리가 존재하지 않을 경우 디렉터리를 자동으로 생성.
입력 예 : cp -r temp temp_cp
temp_cp 디렉터리는 존재하지 않았지만 자동으로 생성됨.

-i 옵션 : 복사할 파일/디렉터리명이 존재하면 덮어쓸 것인지 물어봄.
입력 예 : cp -i etc/hosts text_01
y or n 로 응답 가능. -i 옵션이 없다면 강제로 덮어씀.

파일 찾기와 이동

find [경로] [검색조건] [옵션] [동작] : 다양한 조건으로 파일 위치 탐색.

옵션 설명
-name 파일 이름으로 검색
-type 파일 타입으로 검색
-user 로그인 아이디로 사용자가 소유한 모든 파일 검색
-perm 지정한 접근 권한과 일치하는 파일 검색
-exec 명령 {} \; 검색된 파일에 명령을 실행
-ok 명령{} \; 사용자의 확인을 받아서 명령을 실행
-print 검색된 파일의 절대 경로명을 화면에 출력(기본 동작)
-ls 검색결과를 긴 목록형식으로 출력

입력 예 : find /usr -name ls
출력 예 :
/usr/lib/klibc/bin/ls
/usr/bin/ls
    /usr 디렉터리에 존재하는 ls 파일 검색.

입력 예 : find . -type f -name ‘h*’ -print
출력 예 :
./temp/hosts
./temp_cp/hosts
    현재 디렉터리부터 하위 디렉터리까지에서 h로 시작하는 파일 검색.

입력 예 : find . -type f -name ‘*’ -empty -exec ls -l {} \;
출력 예 :
-rw-r–r– 1 renio renio 0 8월 15 2035 ./ex_test
    현재 디렉터리에서 하위 디렉터리까지에서 비어있는 파일 검색.

입력 예 : find -type f -name ‘h*’ -print
출력 예 :
./.local/share/gvfs-metadata/home-9737a9ca.log
(생략)
    현재 디렉터리에 h로 시작하는 파일 검색

cat [옵션] [파일명] : 파일 내용 출력
입력 예 : cat test.txt
출력 예 :
안녕하세요.
오늘도 즐거운 하루 되세요.
    test.txt 파일의 내용을 연속적으로 출력.

-n 옵션 : 행 번호도 출력
입력 예 : cat -n test.txt
출력 예 :
1 안녕하세요.
2 오늘도 즐거운 하루 되세요.

more [옵션] [파일명] : 파일 내용을 화면 단위로 출력.
입력 예 : more /etc/services
출력 예 :
/# Network services, Internet style
(생략)
ftp-data    20/tcp
–More–(4%)
    /etc 디렉터리 내의 services 파일의 내용을 화면 단위로 출력.
    스페이스바를 눌러 다음 페이지 확인, q키를 눌러 종료.
+행 번호 옵션 : 지정한 행 번호부터 출력.

grep [옵션] [찾을 문자열] [파일명] : 파일의 특정 문자열 검색.

옵션 설명
-c 찾을 문자열이 속한 행의 개수 출력
-H 파일명과 함께 출력
-i 대소문자를 구별하지 않고 출력
-l 해당 패턴을 포함하는 파일이름 출력
-n 찾으려는 문자열이 속해있는 행의 번호를 함께 출력
-r 현재 경로로부터 하위 경로까지 검색하여 출력
-v 찾으려는 문자열이 없는 행 출력
-w 패턴 표현식을 하나의 단어로 취급하여 검색

입력 예 : grep -n “xmpp” ex_data
    ex_data 파일에서 특정 문자열 “xmpp”를 찾아 행 번호와 함께 출력.

grep -c “http” /etc/services
    http가 포함된 행의 개수 출력
grep -H “ssh” /etc/services
    파일명과 내용을 함께 출력
grep -i “Ssh” /etc/services
    대소문자 구분하지 않고 검색
grep -l “smtp” /etc/*
    해당 패턴을 포함하는 파일명만 출력
grep -r “http” /etc/
    재귀적으로 검색
grep -w “ftp” /etc/services
    단어 단위로 검색

whereis [옵션] [명령] : 특정 명령의 위치 검색.
입력 예 : whereis cp
출력 예 :
cp : /usr/bin/cp /usr/share/man/manl/cp.1.gz
    cp 명령이 어느 디렉터리에 존재하는지 확인.

옵션 설명
-b 바이너리 파일만 검색
-m 매뉴얼 파일만 검색
-s 소스 파일만 검색

which [명령] : 특정 명령의 위치 검색.
입력 예 : which ls
출력 예 : /usr/bin/ls

mv [파일/디렉터리명] [파일/디렉터리명] : 파일이나 디렉터리를 다른 디렉터리로 이동(잘라내기).
입력 예 : mv text_01 temp
    text_01 파일을 temp 디렉터리로 이동.
입력 예 : mv text_01 text_02
    text_01 파일의 이름을 text_02로 변경.

파일 삭제와 링크

rm [옵션] [파일/디렉터리명] : 파일 또는 디렉터리 삭제.
입력 예 : rm text_file
    text_file 파일 삭제.

-i 옵션 : 정말 삭제할 것인지 확인.
입력 예 : rm -i text_file
출력 예 :
rm: 일반 빈 파일 ‘text_file’을 제거할까요? y

-r 옵션 : 해당 디렉터리와 그 내용을 모두 삭제.
입력 예 : rm -r temp

-ri 옵션 : 해당 디렉터리와 그 내용을 모두 물어가며 삭제.
입력 예 : rm -ri temp
출력 예 :
rm: ‘temp’ 디렉터리로 내려가시겠습니까? y
(생략)
rm: 디렉터리 ‘temp’를 제거할까요? y

파일 링크 : 기존에 있는 파일에 새로운 파일을 연결.
① 하드 링크 - 기존 파일에 새로운 파일명을 추가.
② 심볼릭(소프트) 링크 - 원본 파일을 가리키는 새로운 파일을 생성.

ln [옵션] [원본 파일명] [링크 파일명] : 링크 생성.
입력 예 : ln ex_data ex_data.ln
    ex_data 파일의 하드 링크 ex_data.ln 생성(동일한 I-node 번호 부여).

옵션 설명
-b 링크 파일을 생성할 때 대상 파일이 이미 존재한다면 백업 파일 생성 후 링크 파일 생성
-d 디렉터리에 대한 하드 링크 파일 생성을 가능하게 함(단, root 권한으로 수행하더라도 시스템 권한 제한으로 인해 실패 가능성 높음)
-f 대상 파일이 존재할 경우 대상 파일을 지우고 링크 파일을 생성
-i 대상 파일이 존재할 경우 대상 파일을 지울 것인지 확인 요청
-s 심볼릭 링크 파일 생성
-S 백업 파일을 생성할 경우 접미사를 지정
-t 링크 파일을 생성할 디렉터리 지정
--target-directory=DIRECTORY : 동일한 옵션

입력 예 : ln -s ex_data ex_data.sl
    ex_dataex_data 파일의 심볼릭 링크 ex_data.sl 생성(I-node 다름).

◀ 이전 글 LECTURE, 서버프로그래밍
디렉터리 명령어
2025-10-12
목록으로 다음 글 ▶ LECTURE, 객체지향프로그래밍II
상속
2025-10-16