3.5 파일 복사하기
- cp [옵션] [파일1(디렉터리1)] [파일2(디렉터리2)] ex) cp file1 file2 : file2에다 file1을 복사함.
- 옵션 -i : 파일2가 존재하면 덮어쓸 것인지 물어봄. ex) cp -i /etc/hosts text1
-r : 디렉터리를 복사할 때 지정함.
- 두 인자가 모두 파일인 경우 : 두 번째 인자로 지정한 파일이 존재하지 않는 경우에는 원본 파일을 복사해서 새로 만듬.
- 두 번째 인자가 디렉터리인 경우 : 디렉터리는 당연히 미리 만들어져 있어야하고, 파일을 해당 디렉터리 아래에 복사한다!
- 인자를 여러 개 지정하는 경우 : 파일 여러 개 지정 가능, but 마지막 인자가 반드시! 디렉터리여야함.
- 디렉터리 복사하기 : 디렉터리 복사할 때 -r 옵션 안쓰면 오류뜸!
ex) cp -r tmp1 tmp2
- 두 번째 인자로 지정한 디렉터리가 이미 있는 디렉터리인 경우 : 원본 디렉터리가 목적지 디렉터리 아래에 원본 디렉터리와 같은 이름으로 복사됨.
3.6 파일 이동하고 파일명 바꾸기
- mv [옵션] [파일1(디렉터리1)] [파일2(디렉터리2)] ex) mv file1 file2
- 옵션 -i : 파일2(디렉터리2)가 존재하면 덮어쓸 것인지 물어봄.
- 파일을 파일로 이동하기 ( 파일명 바꾸기 ) : 결국 원본 파일의 이름을 다른 이름으로 바꾸는 작업이랑 같음!
- 파일을 다른 디렉터리로 이동하기 : 두 번째 인자로 디렉터리를 지정하는 경우 원본 파일을 지정한 디렉터리로 이동함.
- 디렉터리를 디렉터리로 이동하기 ( 디렉터리명 바꾸기!! )
- 두 번째 인자가 존재하는 디렉터리가 아닌 경우면 그냥 무난하게 디렉터리명 변경됨.
- 두 번째 인자가 존재하는 디렉터리면 원본 디렉터리가 두 번째 인자 디렉터리 아래로 이동함.
3.7 파일 삭제하기
- rm [옵션] [파일(디렉터리)]
- 옵션 -i : 파일을 정말 삭제할 건지 물어봄.
-r : 디렉터리를 삭제할 때 지정함. ex) rm -r temp3
-ri 형태로 섞어쓸 수 있음 ex) rm -ri temp3
3.8 파일 링크
- 파일 링크 : 기존 파일에 새로운 이름을 붙이는 것임.
- 하드 링크와 심벌릭 링크 두 종류가 있음.
- 하드 링크 : 기존 파일에 새로운 파일명을 추가로 생성하는 것.
- 심벌릭 링크 : 원본 파일을 가리키는 새로운 파일을 만드는 것, 윈도우의 바로가기 기능과 비슷!
- 리눅스 파일의 구성 : ‘파일명+inode+데이터 블록’ 형태임. 파일명은 말 그대로 파일 이름이고, inode는 외부적으로는 번호로 표시되고, 내부적으로는 파일 상세 정보임. ls -l 명령으로 출력되는 정보가 inode에 저장되어 있는 파일 상세 정보인 거! 데이터 블록은 011101 요 느낌임 ㅋ.ㅋ
- 하드 링크는 원본 파일과 inode 값이 같음! 그래서 원본 삭제되어도 같은 inode 값을 가진 애가 있으면 그 애를 따라감. 하드 링크는 같은 파일에 이름만 다르게 붙이는 거지만, 파일 복사는 완전 독립적인 파일을 하나 만드는거임! gedit(텍스트 편집기) 열어서 data1.ln 파일의 내용을 수정한 후 data1 파일의 내용을 확인해보면 두 파일이 모두 바뀌어 있음!
- 심벌릭 링크는 원본 파일과 inode 값이 다름. 그냥 바로가기처럼 원본 파일의 이름을 가리키는 파일임. 심벌릭 링크를 열고 수정하면 원본 파일이 수정됨. 원본 파일이 사라지게되면 역할을 수행할 수 없음. 장점은 전혀 다른 파일이라도 원본 파일과 이름이 같다면 계속 사용가능하다는 것임.
- 하드 링크는 같은 파일 시스템에 있는 파일에만 생성할 수 있지만! 심벌릭링크는 디렉터리에도 지정할 수 있고 파일 시스템이 달라도 생성할 수 있음.
- 그래서! 하드 링크 만드는 법은 ln [옵션] [원본 파일] [링크 파일] 임!
- 심벌릭 링크 만드려면 여기서 옵션에 -s 추가!
TMI ) ‘없애고 다른 파일로 교체’ => 이게 해킹의 기본 원리임!
3.9 파일과 관련한 유용한 명령
- touch : 빈 파일 생성 or 파일 이미 만들어져있으면 수정 시간 변경하기
- 옵션 -a : 접근 시간만 변경
-m : 수정 시간만 변경
-t [[CC][YY]MMDDhhmm[.ss]: 시간을 직접 입력한다.
// CC : 연도 첫 두자리 (YY에 따라 자동으로 인식하기도 함! YY가 00~68이면 CC=20 )
YY : 연도 마지막 두 자리 요런 느낌으로 달/월/시간/분/초 (연도 지정 안해도 괜춘)
- 사용 예시 : touch test // test 파일 만들기
- grep : 파일 내 특정 문자열 검색하기 (지정한 패턴이 포함된 행을 찾음)
- 옵션 -i : 대소문자 모두 검색
-l : 지정한 패턴이 포함된 파일명을 출력
(ex) grep -l hello *.c ( .c로 끝나는 파일중에서 hello 포함된 파일명 출력)
-n : 행 번호를 출력함
(ex) grep -n unix ~/*.txt (홈 디렉터리 밑에 모든 파일에서 unix 들어간 거 행 번호와 함께 출력)
- 형식 : grep [옵션] [패턴] [파일]
(grep은 약간 파일 내용을 검색하는디 find는 파일 생성 일자, 이름, 소유자 요런 느낌 좀 광범위)
- find : 파일 검색하기 ( 지정한 위치에서 조건에 맞는 파일 검색함 )
- 형식 : find [경로 검색 조건] [동작]
- 옵션 -name filename : 파일명으로 검색함
-type 파일 종류 : 파일 종류로 검색함
-user loginID : 지정한 사용자가 소유한 모든 파일을 검색함
-perm 접근 권한 : 지정한 사용 권한과 일치하는 파일을 검색함
- 동작 -exec 명령 {}(/ 반대 작대기); : 검색된 파일에 명령을 실행함
-ok 명령 {}(/ 반대 작대기); : 사용자의 확인을 받아서 명령을 실행함
-print : 검색된 파일의 절대 경로명을 화면에 출력함
-ls : 검색 결과를 긴 목록 형식으로 출력함
- find 명령의 예시들
- find /home -user user1 : user1이 소유자인 모든 파일 검색함.
- find 명령으로 검색한 모든 파일을 대상으로 동일한 작업을 수행하려면 -exec나 -ok 옵션 지정!
- find /tmp -user user1 -exec rm {} (/ 반대 작대기);
- *rm 명령과 {} 사이, {}와 (/ 반대 작대기) 반뜨시 공백이 있어야 함! (/ 반대 작대기);는 공백 없어야 함!!*
- -exec와 (/ 반대 작대기); 사이에 기술된 부분이 ‘-user user1’ 옵션으로 검색된 파일에 적용될 명령임!
- whereis : 지정한 경로에서 명령의 바이너리 파일이나 매뉴얼 파일의 위치를 찾는다.
- whereis [옵션] [파일] ex) whereis ls
- which : 명령어 파일의 위치를 찾아서 그 경로나 에일리어스를 출력한다.
- which [명령] ex) which ls
'학교 공부 > 리눅스' 카테고리의 다른 글
[리눅스] 문서 편집하기 2 (0) | 2022.09.16 |
---|---|
[리눅스] 문서 편집하기 1 (0) | 2022.09.16 |
[리눅스] 디렉터리와 파일 사용하기 2 (0) | 2022.09.16 |
[리눅스] 디렉터리와 파일 사용하기 1 (0) | 2022.09.16 |
[리눅스] 리눅스 입문 (0) | 2022.09.16 |