[Linux] 5장 파일과 디렉터리

aramjs·2023년 10월 23일

Linux

목록 보기
5/14
post-thumbnail

5.1 mkdir : 디렉터리 만들기

  • mkdir : 디렉터리 생성한다. 파일명, 디렉토리명은 영어로 한다. 중복 불가능하다.

  • mkdir report/2021/05 : 불가능하다.

  • mkdir -p report/2021/05 (parent) : report/2021/05 디렉터리를 한 번에 생성한다. 부모 디렉터리까지 생성한다.

  • ls -R (recursive) : 디렉토리 아래의 모든 내용까지 반복해서 보여준다.


5.2 touch : 파일 만들기

  • touch : 인자로 지정한 이름의 빈 파일을 생성한다. 여러 개 만들 수 있다.

    • 파일의 타임스탬프를 현재 시간으로 변경한다.

    • 존재하는 파일을 지정해도 내용이 지워지지 않고 타임스탬프만 갱신된다.


5.3 rm과 rmdir : 파일과 디렉터리 삭제하기

  • rm : 묻지 않고 바로 삭제한다.

rm newfile

rm *.html

  • touch f1.txt f2.txt f3.txtrm f?.txt

  • rm -r : 재귀적으로 디렉터리 트리를 삭제한다.

    디렉토리는 rm으로 지울 수 없다.
    디렉터리 트리를 모두 지워야 하기 때문에 -r(recursive) 옵션을 사용해야 한다.
    ls 로 확인하고 삭제해야 한다.

리눅스의 철학 : 주어진 명령을 단순히 실행한다.

  • rm -i (interact) : 물어보고 지운다. prompt before every removal

    y/n 을 입력받고 실행여부를 결정한다.

  • rmdir : 빈 디렉터리를 삭제한다. 비어있지 않은 경우 삭제가 불가능하다.

  • touch .hidden : 숨김 파일을 생성한다. ls -a를 사용하여 확인해야 한다.


5.4 cat : 파일 내용 출력하기

  • cat f2.txt : 파일이 있는 경우 내용을 출력한다.

  • cat /etc/hostname : user1@user1-VirtualBox 에서 hostname의 내용인 을 보여준다.

  • cat /etc/crontab : cron table cron명령어가 사용하는 테이블이다. 특정 명령어를 스케줄에 맞게 자동으로 실행하는 설정 파일이다.

  • cat -n : 행 번호가 함께 출력된다.

  • cat hello world를 입력하면 내용을 그대로 출력한다. 종료하려면 ctrl+d : 입력을 그만하겠다는 의미이다.

  • cat > myname : myname에 출력된다는 의미이다. 파일을 생성할 수 있다. cat myname으로 확인할 수 있다.


5.5 less : 스크롤 표시하기

  • less /etc/bash.bashrc : 한 페이지씩 보여준다. 엔터, 화살표, j, k로 스크롤 한다. q로 탈출한다.
  • 단축키
    • / : 열려있는 파일에서 문자열을 검색할 수 있다.
    • n (next) : 밑으로 내려간다.
    • N : 이전 검색 결과로 이동한다.
    • ? : 문자열을 위 방향으로 검색한다.

5.6 cp : 파일과 디렉터리 복사하기

  • cp file1 file2 : file1을 file2에 복사한다. file2가 없으면 생성한다.
    cp 원본 복사본명

  • cp file1 dir1 : file1을 dir1에 복사한다. 디렉토리면 그 안에 파일을 생성한다.

  • cp file1 file2 dir2 : dir2에 파일 2 개를 복사한다.

  • cp 빈 파일 파일 : 파일이 빈 파일로 덮어쓰기 된다.

  • cp -i 빈 파일 파일 : 물어보고 덮어쓰기 된다.

  • cp -r dir1 dir2 : dir1을 dir2에 복사한다. 하위 디렉터리까지 복사한다.

디렉토리가 이미 있는 경우라면 dir2 밑에 dir1이라는 이름으로 복사된다.
없는 경우 디렉토리 생성된다.


5.7 mv : 파일 이동하기

  • mv file1 file2 : 이름을 바꾼다. file1의 이름을 file2로 변경한다.
    mv 파일명 새로운파일명 : 두개 다 파일이면 이름이 변경된다.

  • mv file2 dir1 : file2dir1로 이동한다.
    mv 파일명 장소

  • mv file1 file2 file3 dir1 : file들dir1로 이동한다.

  • mv -i file1 file2 : file1file2에 덮어쓴다. 물어보고

  • mv dir1 dir2 : dir2가 존재하지 않는 경우 dir1이 dir2에 덮어쓰기 되면서 이름이 변경된다.

    • dir2가 존재하는 경우 dir1의 경로는 dir2/dir1이 된다.

5.8 ln : 링크 만들기

바로가기 링크를 만든다.

파일에 별명을 붙이는 기능이다.

  • 하드링크 : 거의 사용하지 않음.

  • 심볼릭 링크 : 주로 사용된다. 윈도의 바로가기와 비슷하다.

ln 링크할파일 링크

하드링크

  • 한 원본에 이름을 여러 개 붙인다.

  • 소유자 옆에 하드링크 개수를 알 수 있다.

  • ln file1 file1.ln : 현재 위치에 file1.ln 생성한다. 완전히 내용이 같다.

  • file1 → 정보 inode → 파일 내용

    파일 생성 때마다 file1, inode, 파일 내용 이 생성된다.

    하드링크의 경우 file1.ln은 file1의 inode와 파일 내용이 공유된다. 이름만 한개 더 생긴다.

    어떤 것이 원본인지 구분하지 않고 모두 같은 원본이다.

  • 단점

  1. 디렉토리에 하드링크는 불가능하다.
  2. 서로 다른 디스크에 걸쳐서 만들 수 없다.
  • 삭제

    • rm file1.ln : 이름표가 또 있으므로 이름만 삭제한다.
      하드링크가 2개 이상이면 inode와 파일 내용을 삭제하지 않고 한 개 뿐이면 완전히 삭제한다.

    • ln dir3/dir2/file2 myfile2.ln : 현재 위치에 file2의 바로가기를 생성한다.

심볼릭 링크

원본 파일에 대한 정보가 담긴 작은 특수 파일이며 하드 링크와 달리 원본과 구별된다.

  • ln -s file1 file2 : file1의 심볼릭 링크를 file2로 만든다.
    ln -s 원본 링크

  • 하드링크의 개수는 변하지 않고 1이다.

  • file1의 inode, 내용file2의 inode, 파일내용이 새로 만들어진다.

이때 file2의 내용이 file1을 가리키고 있다.

내용이 다른 파일을 가리키기만 하면 되므로 file2의 용량이 매우 작다.

ls -l로 확인하면 file2 → file1으로 화살표로 표시한다.

  • 삭제

    • rm file2 : 원본에는 영향을 주지 않고 하드링크 개수도 변하지 않는다.
profile
안녕하세요.

0개의 댓글