Linux 파일 및 디렉터리 관리


우리는 리눅스의 디렉토리 구조가 트리 구조이고, 최상위 디렉토리가 루트 디렉토리인 것을 알고 있습니다.

다른 디렉토리는 마운트하여 트리에 추가할 수 있으며 마운트 해제하여 제거할 수 있습니다.

이 튜토리얼을 시작하기 전에 절대 경로와 상대 경로가 무엇인지 알아야 합니다.

  • 절대 경로:
    경로는 루트 디렉터리 /에서 시작하여 작성됩니다. 예: /usr/share/doc 이 디렉터리.

  • 상대 경로:
    경로는 /로 시작하지 않고 작성됩니다. 예를 들어 /usr/share/doc에서 /usr/share/man으로 이동할 경우 다음과 같이 작성할 수 있습니다. 이것은 상대적인 경로 작성 방법입니다!


디렉토리 처리를 위한 일반적인 명령

다음으로 디렉터리 처리를 위한 몇 가지 일반적인 명령을 살펴보겠습니다.

  • ls: 디렉터리 나열

  • cd: 디렉터리 전환

  • pwd: 표시 현재 디렉터리

  • mkdir: 새 디렉터리 만들기

  • rmdir: 빈 디렉터리 삭제

  • cp: 파일 또는 디렉터리 복사

  • rm: 파일 또는 디렉터리 제거

할 수 있습니다. man [command]를 사용하면 man cp와 같은 각 명령의 사용법 문서를 볼 수 있습니다.

ls(목록 디렉터리)

Linux 시스템에서는 아마도 ls 명령이 가장 일반적으로 실행됩니다.

구문: ​​

[root@www ~]# ls [-aAdfFhilnrRSt] 目录名称
[root@www ~]# ls [--color={never,auto,always}] 目录名称
[root@www ~]# ls [--full-time] 目录名称

옵션 및 매개변수:

  • -a: 모든 파일이 숨겨진 파일(.로 시작하는 파일)과 함께 나열됩니다. (일반적으로 사용됨)

  • -d: 디렉토리 자체만 나열됩니다. 디렉터리에 파일 데이터를 나열하는 대신(일반적으로 사용됨)

  • -l: 파일 속성 및 권한 등을 포함한 긴 데이터 문자열을 나열합니다.(일반적으로 사용됨)

은 홈 디렉터리의 모든 파일을 나열합니다. List (속성 및 숨김 파일 포함)

[root@www ~]# ls -al ~

cd (디렉토리 전환)

cd는 Change Directory의 약어로, 작업 디렉토리를 변경하는 데 사용되는 명령입니다.

문법:

 cd [相对路径或绝对路径]
#使用 mkdir 命令创建w3cschool.cc目录
[root@www ~]# mkdir w3cschool.cc

#使用绝对路径切换到w3cschool.cc目录
[root@www ~]# cd /root/w3cschool.cc/

#使用相对路径切换到w3cschool.cc目录
[root@www ~]# cd ./w3cschool.cc/

# 表示回到自己的家目录,亦即是 /root 这个目录
[root@www w3cschool.cc]# cd ~

# 表示去到目前的上一级目录,亦即是 /root 的上一级目录的意思;
[root@www ~]# cd ..

cd 명령을 몇 번 해보면 잘 이해할 수 있을 것입니다.

pwd (현재 디렉터리 표시)

pwd는 Print Working Directory의 약어로, 현재 디렉터리를 표시하는 명령입니다.

[root@www ~]# pwd [-P]
选项与参数:
-P  :显示出确实的路径,而非使用连结 (link) 路径。

范例:单纯显示出目前的工作目录:
[root@www ~]# pwd
/root   <== 显示出目录啦~

范例:显示出实际的工作目录,而非连结档本身的目录名而已
[root@www ~]# cd /var/mail   <==注意,/var/mail是一个连结档
[root@www mail]# pwd
/var/mail         <==列出目前的工作目录
[root@www mail]# pwd -P
/var/spool/mail   <==怎么回事?有没有加 -P 差很多~
[root@www mail]# ls -ld /var/mail
lrwxrwxrwx 1 root root 10 Sep  4 17:54 /var/mail -> spool/mail
# 看到这里应该知道为啥了吧?因为 /var/mail 是连结档,连结到 /var/spool/mail 
# 所以,加上 pwd -P 的选项后,会不以连结档的数据显示,而是显示正确的完整路径啊!

mkdir(새 디렉터리 만들기)

새 디렉터리를 만들려면 mkdir(디렉토리 만들기)을 사용하세요.

구문: ​​

mkdir [-mp] 目录名称

옵션 및 매개변수:

  • -m: 구성 파일 권한! 직접 구성, 기본 권한(umask)을 볼 필요가 없습니다~

  • -p: 필요한 디렉터리(상위 디렉터리 포함)를 반복적으로 직접 생성할 수 있도록 도와줍니다!

예: /tmp로 이동하여 여러 새 디렉터리를 만들어 확인하세요.

[root@www ~]# cd /tmp
[root@www tmp]# mkdir test    <==创建一名为 test 的新目录
[root@www tmp]# mkdir test1/test2/test3/test4
mkdir: cannot create directory `test1/test2/test3/test4': 
No such file or directory       <== 没办法直接创建此目录啊!
[root@www tmp]# mkdir -p test1/test2/test3/test4

-p 옵션을 추가하면 직접 다중 레이어 디렉터리를 만드는 데 도움이 됩니다!

예: rwx--x--x

[root@www tmp]# mkdir -m 711 test2
[root@www tmp]# ls -l
drwxr-xr-x  3 root  root 4096 Jul 18 12:50 test
drwxr-xr-x  3 root  root 4096 Jul 18 12:53 test1
drwx--x--x  2 root  root 4096 Jul 18 12:54 test2

권한이 있는 디렉터리 만들기 위의 권한 섹션에서 구성 속성을 강제 적용하기 위해 -m을 추가하지 않으면 시스템은 기본 속성을 사용합니다.

위의 예에서와 같이 -m을 사용하는 경우 새 디렉터리에 drwx--x--x 권한을 부여하기 위해 -m 711을 제공합니다.

RMDIR (빈 디렉토리 삭제)

Syntax :

 rmdir [-p] 目录名称

options and parameters :

  • -p : wople wevel "empty"director w3cschool.cc directory

    [root@www tmp]# rmdir w3cschool.cc/

    example을 삭제합니다. : mkdir 예제에서 생성된 디렉토리(/tmp 아래)를 삭제하세요!
  • [root@www tmp]# ls -l   <==看看有多少目录存在?
    drwxr-xr-x  3 root  root 4096 Jul 18 12:50 test
    drwxr-xr-x  3 root  root 4096 Jul 18 12:53 test1
    drwx--x--x  2 root  root 4096 Jul 18 12:54 test2
    [root@www tmp]# rmdir test   <==可直接删除掉,没问题
    [root@www tmp]# rmdir test1  <==因为尚有内容,所以无法删除!
    rmdir: `test1': Directory not empty
    [root@www tmp]# rmdir -p test1/test2/test3/test4
    [root@www tmp]# ls -l        <==您看看,底下的输出中test与test1不见了!
    drwx--x--x  2 root  root 4096 Jul 18 12:54 test2
test1/test2/test3/test4를 즉시 삭제하려면 -p 옵션을 사용하세요.

그러나 이 rmdir은 빈 디렉터리만 삭제할 수 있다는 점에 유의하세요. rm 명령을 사용하면 비어 있지 않은 디렉터리를 삭제할 수 있습니다.

cp(파일 또는 디렉터리 복사)

cp는 파일 및 디렉터리 복사를 의미합니다.

구문:

[root@www ~]# cp [-adfilprsu] 来源档(source) 目标档(destination)
[root@www ~]# cp [options] source1 source2 source3 .... directory

옵션 및 매개변수:

-a: -pdr의 의미와 동일합니다. (일반적으로 사용됨)

  • -d: 소스 파일은 링크 파일(링크 파일)의 속성입니다. 파일 자체 대신 링크 파일 속성을 복사하세요.

  • -f: 대상 파일이 이미 존재하고 열 수 없으면 이를 제거하고 시도하세요. 다시

  • -i: 대상 파일(대상)이 이미 존재하는 경우 덮어쓰기 시 동작을 먼저 묻습니다(일반적으로 사용됨)

  • -l: 하드 링크(하드 링크)의 링크 파일을 생성합니다. ) 파일 자체를 복사하는 대신 ;

  • -p: 기본 속성을 사용하는 대신 해당 속성과 함께 파일을 복사합니다(일반적으로 백업에 사용됨)

  • -r: 반복 및 연속 복사, 디렉터리에 사용 복사(일반적으로 사용됨)

  • -s: 기호 링크 파일, 즉 "바로가기" 파일로 복사합니다.

  • -u: 대상이 다음보다 오래된 경우에만 대상을 업그레이드합니다. 소스!

  • 루트 ID를 사용하여 홈 디렉터리의 .bashrc를 /tmp로 복사하고 이름을 bashr
  • [root@www ~]# cp ~/.bashrc /tmp/bashrc
    [root@www ~]# cp -i ~/.bashrc /tmp/bashrc
    cp: overwrite `/tmp/bashrc'? n  <==n不覆盖,y为覆盖

    rm으로 바꿉니다(파일 또는 디렉터리 제거)

  • 구문: ​​

     rm [-fir] 文件或目录

    옵션 및 매개 변수:

    -f : 존재하지 않는 파일을 강제로 무시하며 경고 메시지가 표시되지 않습니다.

    • -i: 대화형 모드, 삭제하기 전에 사용자에게 조치를 취할지 묻는 메시지가 표시됩니다.

    • -r: 재귀 삭제 ! 디렉토리 삭제에 가장 일반적으로 사용됩니다! 이것은 매우 위험한 선택입니다! ! !

    • cp 예제에서 방금 생성한 bashrc를 삭제하세요!

      [root@www tmp]# rm -i bashrc
      rm: remove regular file `bashrc'? y

      -i 옵션을 추가하면 잘못된 파일명 삭제를 방지하도록 사전에 요청합니다!
    mv(파일 및 디렉터리 이동 또는 이름 변경)

    구문: ​​

    [root@www ~]# mv [-fiu] source destination
    [root@www ~]# mv [options] source1 source2 source3 .... directory

    옵션 및 매개변수:

    -f : force는 강제를 의미합니다. 대상 파일이 이미 존재하는 경우 묻지 않고 직접 덮어씁니다.

    • -i : 대상파일(destination)이 이미 존재한다면 덮어쓸지 묻습니다!

    • -u : 대상 파일이 이미 존재하고 소스가 비교적 새로운 경우 업그레이드(업데이트)됩니다

    • 파일을 복사하고 디렉터리를 생성한 후 해당 디렉터리로 파일을 이동합니다

      [root@www ~]# cd /tmp
      [root@www tmp]# cp ~/.bashrc bashrc
      [root@www tmp]# mkdir mvtest
      [root@www tmp]# mv bashrc mvtest

      특정 파일을 특정 디렉터리로 이동하면 끝입니다!

      지금 디렉토리 이름을 mvtest2

      [root@www tmp]# mv mvtest mvtest2

      Linux 파일 콘텐츠 보기

      로 이름을 바꾸세요. Linux 시스템에서 파일 콘텐츠를 보려면 다음 명령을 사용하세요.

      • cat 첫 번째 줄부터 파일 콘텐츠를 표시하세요

      • tac 마지막 줄부터 보면 tac이 cat을 거꾸로 쓴 것을 알 수 있어요!

      • nl 표시되면 줄번호를 출력!

      • more는 파일 내용을 페이지별로 표시합니다

      • less는 more와 유사하지만 more보다 더 나은 점은 페이지를 앞으로 넘길 수 있다는 점입니다!

      • 머리는 처음 몇 줄만 보세요

      • 꼬리는 꼬리 줄만 보세요

      man [command]를 사용하면 다음과 같은 각 명령의 사용법 문서를 볼 수 있습니다. man cp .

      cat

      첫 번째 줄부터 파일 내용 표시

      구문: ​​

      cat [-AbEnTv]

      옵션 및 매개변수:

      • -A: -vET 통합 옵션과 동일합니다. 공백;

      • -b: 줄 번호 나열, 비어 있지 않은 줄의 줄 번호만 표시, 빈 줄은 줄 번호로 표시되지 않습니다!

      • -E : 후행 줄 바꿈 바이트 표시 $;

      • -n : -b 옵션과 다른 빈 줄을 포함하여 줄 번호를 인쇄합니다.

      • - T: 표시 ^I가 있는 [tab] 버튼

      • -v: 보이지 않는 특수 문자 나열

      /etc/issue의 내용 보기:

      [root@www ~]# cat /etc/issue
      CentOS release 6.4 (Final)
      Kernel \r on an \m

      tac

      tac 명령은 cat 명령과 정반대입니다. . 파일 내용이 마지막 줄부터 표시됩니다. tac이 거꾸로 쓰여 있는 것을 알 수 있습니다! 예:

      [root@www ~]# tac /etc/issue
      
      Kernel \r on an \m
      CentOS release 6.4 (Final)

      nl

      줄 번호 표시

      구문: ​​

      nl [-bnw] 文件

      옵션 및 매개변수:

      • -b: 줄 번호를 지정하는 두 가지 주요 방법이 있습니다.
        -b a: 빈 줄인지 여부에 관계없이 줄 번호도 나열됨을 나타냅니다(cat -n과 유사). -b t: 빈 줄이 있으면 빈 줄에 줄 번호를 나열하지 않습니다(기본값).

      • -n: 줄 번호를 나열하는 세 가지 주요 방법이 있습니다.

        -n ln: 화면 왼쪽 끝에 줄 번호가 표시됩니다. -n rn: 행 번호는 0을 추가하지 않고 해당 열의 맨 오른쪽에 표시됩니다. -n rz: 해당 필드의 맨 오른쪽에 줄 번호가 표시되고 0이 추가됩니다.


        -w: 줄 번호 필드가 차지하는 자릿수입니다.
      • 예 1: nl을 사용하여 /etc/issue의 내용을 나열합니다.
      • [root@www ~]# nl /etc/issue
             1  CentOS release 6.4 (Final)
             2  Kernel \r on an \m
      more

      페이지별로 페이지를 넘깁니다.

      [root@www ~]# more /etc/man.config
      #
      # Generated automatically from man.conf.in by the
      # configure script.
      #
      # man.conf from man-1.6d
      ....(中间省略)....
      --More--(28%)  <== 重点在这一行喔!你的光标也会在这里等待你的命令

      more 프로그램을 실행하는 동안 누를 수 있는 여러 버튼이 있습니다.

      스페이스 키(스페이스): 한 페이지 넘기는 것을 의미합니다.
      • Enter: "한 줄" 넘기는 것을 의미합니다.
      • /string : 표시된 콘텐츠에서 키워드 "string"을 검색하는 것을 의미합니다.

      • :f : 현재 표시된 파일 이름과 줄 수를 즉시 표시합니다.

      • q : 즉시 종료를 의미합니다. 더 이상 파일 내용을 표시하지 않습니다.

      • b 또는 [ctrl]-b: 페이지를 뒤로 넘기는 것을 의미하지만 이 작업은 파이프라인이 아닌 파일에만 유용합니다.

      less

      페이지별로 넘기면 다음 예에서는 /etc/man.config 파일의 내용을 출력합니다.

      [root@www ~]# less /etc/man.config
      #
      # Generated automatically from man.conf.in by the
      # configure script.
      #
      # man.conf from man-1.6d
      ....(中间省略)....
      :   <== 这里可以等待你输入命令!

      less 실행 시 입력할 수 있는 명령은 다음과 같습니다.

      • Space 키 : Flipping 한 페이지 아래로 ;

      • [pagedown]: 페이지 아래로 스크롤

      • [pageup]: 페이지 위로 스크롤

      • /string : "문자열"을 아래로 검색하는 기능; ?String : "문자열"을 위쪽으로 검색하는 기능

      • n : 이전 검색 반복(/ 또는 ?! 관련)

      • N : 이전 검색을 역순으로 반복(/ 또는 ? ! )

      • q: less 프로그램을 종료합니다.

      • head

      • 파일의 처음 몇 줄을 지웁니다.

      구문:

      head [-n number] 文件

      옵션 및 매개변수:

      -n: 뒤에 숫자가 옵니다. 표시된 숫자를 나타냅니다 행의 의미

      • [root@www ~]# head /etc/man.config

        기본적으로 처음 10행이 표시됩니다! 처음 20줄을 표시하려면 다음을 수행해야 합니다:

        [root@www ~]# head -n 20 /etc/man.config
      • tail

      파일의 마지막 몇 줄을 지웁니다.

      구문:

      tail [-n number] 文件

      옵션 및 매개변수:

      -n : 뒤에 숫자가 옵니다. , 표시할 줄 수를 나타냅니다. 의미

      • -f: 다음 파일 이름을 지속적으로 감지함을 나타내며 [ctrl]-c를 누를 때까지 꼬리 감지가 끝나지 않습니다

      • [root@www ~]# tail /etc/man.config
        # 默认的情况中,显示最后的十行!若要显示最后的 20 行,就得要这样:
        [root@www ~]# tail -n 20 /etc/man.config