본문 바로가기

CentOS/Study

[Study10]디렉토리 관리 명령의 강력한 기능 - ls

반응형

ls 명령어는 디렉토리와 파일의 목록을 출력하는데 사용됩니다.

이 명령어는 파일의 속성 정보 또는 파일 이름만 출력할 수 있으며, 파일 이름만 출력하는 경우에는 -F 옵션을 사용하여 파일 형식을 구분할 수 있습니다.

예를 들어, ls 명령어를 실행하여 현재 디렉토리에 있는 모든 파일과 디렉토리를 출력할 수 있습니다.

$ ls
Desktop/ Downloads/ Documents/ Music/ Pictures/ Public/ Templates/ Videos/

위의 출력 결과에서, 각각의 이름은 파일 또는 디렉토리의 이름을 나타내며 /로 끝나는 것은 디렉토리를 나타냅니다.

이 명령어는 다른 옵션과 함께 사용될 수 있습니다.

 

ls 명령어 옵션

옵션 내용
-a 숨겨진 파일도 포함하여 모든 파일을 출력합니다.
-l 파일의 자세한 정보를 출력합니다. 파일 종류, 링크 수, 소유자, 그룹, 파일 크기, 최종 수정일 및 파일 이름을 표시합니다.
-R 현재 디렉토리의 하위 디렉토리를 포함하여 모든 파일을 출력합니다.
-F 파일 형식을 표시합니다. 디렉토리인 경우 /, 실행 파일인 경우 *으로 표시됩니다.
-i 파일의 inode 번호를 출력합니다.
-n 파일의 소유자와 그룹을 숫자로 표시합니다.
-d 디렉토리 자체의 정보를 출력합니다.

 

ls 명령어 사용 예제

1. 현재 디렉토리에 있는 파일과 디렉토리의 이름만 출력

# ls
Desktop/ Downloads/ Documents/ Music/ Pictures/ Public/ Templates/ Videos/

2. 현재 디렉토리에 있는 숨겨진 파일도 포함하여 모든 파일과 디렉토리의 이름을 출력

# ls -a
./ ../ .bashrc .profile Desktop/ Downloads/ Documents/ Music/ Pictures/ Public/ Templates/ Videos/

3. 현재 디렉토리에 있는 파일과 디렉토리의 자세한 정보 출력

# ls -l
total 128
drwxr-xr-x  2 user user  4096 Apr 15 14:04 Desktop/
drwxr-xr-x  2 user user  4096 Apr 15 14:04 Documents/
drwxr-xr-x  2 user user  4096 Apr 15 14:04 Downloads/
-rw-r--r--  1 user user 89857 Apr 15 14:04 examples.desktop
drwxr-xr-x  2 user user  4096 Apr 15 14:04 Music/
drwxr-xr-x  2 user user  4096 Apr 15 14:04 Pictures/
drwxr-xr-x  2 user user  4096 Apr 15 14:04 Public/
-rw-r--r--  1 user user   807 Apr 15 14:04 README.txt
drwxr-xr-x  2 user user  4096 Apr 15 14:04 Templates/
drwxr-xr-x  2 user user  4096 Apr 15 14:04 Videos/

4. 현재 디렉토리에 있는 파일과 디렉토리의 이름과 파일 형식 출력

# ls -F
Desktop/ Documents/ Downloads/ examples.desktop Music/ Pictures/ Public/ README.txt Templates/ Videos/

5. 현재 디렉토리의 하위 디렉토리를 모두 출력

# ls -R
.:
Desktop/ Documents/ Downloads/ examples.desktop Music/ Pictures/ Public/ README.txt Templates/ Videos/

./Desktop:
./Documents:
./Downloads:
./Music:
./Pictures:
./Public:
./Templates:
./Videos:

6. 현재 디렉토리에 있는 파일과 디렉토리의 inode 번호 출력

# ls -i
  667093 Desktop/  667094 Documents/  667095 Downloads/  667091 examples.desktop  667096 Music/  667097 Pictures/  667098 Public/  667092 README.txt  667099 Templates/  667100 Videos/
현재 디렉토리에 있는 파일과 디렉토리의 소유자와 그룹을 숫자로 출력
# ls -n
total 128
drwxr-xr-x  2 1000 1000  4096 Apr 15 14:04 Desktop/
drwxr-xr-x  2 1000 1000  4096 Apr 15 14:04 Documents/
drwxr-xr-x  2 1000 1000  4096 Apr 15 14:04 Downloads/
-rw-r--r--  1 1000 1000 89857 Apr 15 14:04 examples.desktop
drwxr-xr-x  2 1000 1000  4096 Apr 15 14:04 Music/
drwxr-xr-x  2 1000 1000  4096 Apr 15 14:04 Pictures/
drwxr-xr-x  2 1000 1000  4096 Apr 15 14:04 Public/
-rw-r--r--  1 1000 1000   807 Apr 15 14:04 README.txt
drwxr-xr-x  2 1000 1000  4096 Apr 15 14:04 Templates/
drwxr-xr-x  2 1000 1000  4096 Apr 15 14:04 Videos/
현재 디렉토리의 정보 출력
# ls -d .
.

위의 예제에서 볼 수 있듯이, ls 명령어는 파일과 디렉토리의 목록을 출력할 뿐만 아니라, 파일의 속성 정보도 출력할 수 있습니다.

이를 통해 파일의 종류, 소유자, 그룹, 파일 크기, 최종 수정일 등을 확인할 수 있습니다.

 

ls 명령어의 기본 사용법 테스트

/test ---+-- file1
         |
         +-- dir1 --- file2

위의 디렉토리 구조는 테스트를 위해 만들어졌으며, 테스트 파일과 디렉토리를 포함합니다.

이 디렉토리 구조는 프로젝트 관리 중에 유용할 수 있습니다.

디렉토리 구조를 변경하고 파일 및 폴더를 추가하여 프로젝트를 보다 체계적으로 관리할 수 있습니다.

또한, 이를 활용하여 프로젝트의 모든 파일 및 폴더에 대한 구조를 파악하고 손쉽게 파일을 찾을 수 있습니다.

 

<실습 준비>

# cd /test
# rm -rf /test/*

위 명령어는 사용자에게 "/test" 디렉토리로 이동하라는 명령어이며, 이후 디렉토리 안의 모든 파일을 삭제하라는 명령어입니다.

이후 사용자에게 "file1"이라는 새로운 파일과 "dir1"이라는 새로운 디렉토리를 만들라는 명령어가 따릅니다.

"dir1" 안에는 "file2"라는 새로운 파일을 만들라는 명령어가 있습니다.

 

# touch file1
# mkdir dir1
# touch dir1/file2

그 다음, 사용자에게 "tree" 명령어를 사용하여 디렉토리 구조를 보여주도록 지시합니다.

출력 결과에서 "/test" 디렉토리 안에 "dir1" 디렉토리와 "file1" 파일이 있음을 알 수 있습니다.

"dir1" 안에는 "file2" 파일이 있습니다.

 

마지막 두 명령어는 "ls"와 "find"를 사용하여 디렉토리와 하위 디렉토리의 모든 파일을 나열하도록 지시합니다.

[root@server1 test]# tree
.
├── dir1
│   └── file2
└── file1

# ls –R(# find . )
.:
total 0
drwxr-xr-x. 2 root root 18 Mar 25 13:23 dir1
-rw-r--r--. 1 root root  0 Mar 25 13:23 file1

./dir1:
total 0
-rw-r--r--. 1 root root 0 Mar 25 13:23 file2

 

(ls -l 출력 결과 해석)
-----------------------------------------------------------------------
-            파일의 종류(File Type) : 일반파일(-), 디렉토리파일(d)
rw-r--r--.   퍼미션 모드(Permission Mode) : 마지막의 점(.)은 ACL 관련 코드
1            링크 수(Hard Link Count)
root         소유자(Owner)
root         그룹(Group)
0            파일의 크기(File Size), 기본 단위 : bytes
-----------------------------------------------------------------------

위의 출력 결과는 'ls -l' 명령어를 실행했을 때 나오는 결과를 보여줍니다.

이 결과에서 파일 종류, 퍼미션 모드, 링크 수, 소유자, 그룹, 파일 크기 등을 확인할 수 있습니다.

 

# ls -ld /* 현 디렉토리 정보를 자세히 출력( .디렉토리 출력) */
현재 작업 중인 디렉토리인 '.'의 상세 정보를 출력합니다.
drwxr-xr-x. 3 root root 29 Mar 25 13:23 .

# ls -l dir1 /* dir1디렉토리의 내용을 출력 */
dir1 디렉토리의 내용을 출력합니다.
total 0
-rw-r--r--. 1 root root 0 Mar 25 13:23 file2

# ls -ld dir1 /* dir1디렉토리의 정보를 출력 */
dir1 디렉토리의 정보를 출력합니다.
drwxr-xr-x. 2 root root 18 Mar 25 13:23 dir1

# ls -lR /test /* -R: Recursive, 하위 디렉토리까지 */
/test 디렉토리의 파일과 디렉토리를 출력합니다. 하위 디렉토리까지 모두 출력합니다.
total 0
drwxr-xr-x. 2 root root 18 Mar 25 13:23 dir1
-rw-r--r--. 1 root root  0 Mar 25 13:23 file1

/test/dir1:
dir1 디렉토리에 있는 파일과 디렉토리를 출력합니다.
total 0
-rw-r--r--. 1 root root 0 Mar 25 13:23 file2

위의 코드는 bash 명령어를 사용하여 파일과 디렉토리 목록을 출력하는 방법입니다.

ls 명령어를 사용하여 현재 디렉토리 및 하위 디렉토리에 있는 파일과 디렉토리를 출력할 수 있습니다.

-l 옵션을 사용하여 자세한 정보를 출력할 수 있으며, -ld 옵션을 사용하여 디렉토리 정보를 출력할 수 있습니다.

-R 옵션을 사용하여 현재 디렉토리 및 하위 디렉토리의 모든 파일과 디렉토리를 출력할 수 있습니다.

 

"ls -a" 옵션 실습

# cd 
# pwd
/root

 

<일반파일 출력>

# ls -l
drwxr-xr-x 2 root root  4096  4월  6 12:17 Desktop
-rw------- 1 root root  4210  1월 25 22:54 anaconda-ks.cfg
-rw-r--r-- 1 root root     0  4월  7 12:38 file_0407.log
-rw-r--r-- 1 root root 54631  1월 25 22:54 install.log
-rw-r--r-- 1 root root  9641  1월 25 22:50 install.log.syslog

Bash 터미널에서 ls -l을 실행하면 현재 디렉토리에 있는 파일 및 디렉토리에 대한 정보가 표시되는 테이블이 표시됩니다.

테이블에는 여러 열이 있습니다.

ls 명령어는 현재 디렉토리의 파일 및 디렉토리 목록을 보여주는 명령어입니다.

ls 명령어를 사용하면 파일 이름, 권한, 소유자, 그룹, 크기, 수정 시간 등의 정보를 알 수 있습니다.

  • 첫 번째 열은 파일 또는 디렉토리의 권한을 나타냅니다. 권한은 사용자가 파일 또는 디렉토리를 읽을 수 있고 쓸 수 있으며 실행할 수 있는지를 지정합니다.
  • 두 번째 열은 파일 또는 디렉토리에 대한 하드 링크 수를 보여줍니다. 하드 링크는 파일이나 디렉토리를 가리키는 포인터로, 같은 파일이나 디렉토리에 대해 여러 개의 하드 링크를 가질 수 있습니다.
  • 세 번째 열은 파일 또는 디렉토리의 소유자 이름을 보여줍니다. 소유자는 파일이나 디렉토리를 소유하고 있는 사용자를 의미합니다.
  • 네 번째 열은 파일 또는 디렉토리를 소유하는 그룹의 이름을 보여줍니다. 그룹은 파일이나 디렉토리를 공유하는 사용자 그룹을 의미합니다.
  • 다섯 번째 열은 파일 또는 디렉토리의 크기를 바이트 단위로 보여줍니다. 디렉토리의 경우에는 하위 파일이나 디렉토리의 크기를 합산한 값을 보여줍니다.
  • 여섯 번째 열은 파일 또는 디렉토리가 마지막으로 수정된 날짜와 시간을 보여줍니다. 이 정보는 파일이나 디렉토리가 언제 변경되었는지를 파악하는 데 유용합니다.
  • 일곱 번째 열은 파일 또는 디렉토리의 이름을 보여줍니다. 이름은 파일이나 디렉토리를 식별하는 데 사용됩니다.

이외에도 ls 명령어에는 다양한 옵션이 있습니다.

-a 옵션을 사용하면 숨겨진 파일이나 디렉토리를 포함하여 모든 파일과 디렉토리를 보여줍니다.

-l 옵션을 사용하면 파일이나 디렉토리의 상세 정보를 볼 수 있습니다.

-h 옵션을 사용하면 파일의 크기를 사람이 읽기 쉬운 형태로 출력합니다.

-t 옵션을 사용하면 파일이나 디렉토리를 수정 시간순으로 정렬하여 보여줍니다.

ls 명령어는 파일과 디렉토리를 다루는 데 기본적인 도구 중 하나이며, Bash 쉘에서 다양한 명령과 옵션을 활용하여 더욱 강력한 기능을 제공합니다.

 

위의 예에서 현재 디렉토리에는 다음과 같은 네 개의 파일이 있습니다:

  • Desktop: 모든 사용자에 대해 읽기, 쓰기 및 실행 권한이 있는 디렉토리입니다.
  • anaconda-ks.cfg: 소유자만 읽기 및 쓰기 권한을 가진 파일입니다.
  • file_0407.log: 모든 사용자에 대해 읽기 및 쓰기 권한이 있는 빈 파일입니다.
  • install.log: 모든 사용자에 대해 읽기 권한이 있고, 소유자에 대해서만 쓰기 권한이 있는 파일입니다.

<숨김파일과 일반파일 출력>

# ls -al
drwxr-x--- 18 root root  4096  8월 15  2010 .
drwxr-xr-x 26 root root  4096  8월 15  2010 ..
-rw-------  1 root root  2395  8월 15  2010 .bash_history
-rw-r--r--  1 root root    24  1월  6  2007 .bash_logout
-rw-r--r--  1 root root   231  4월  7 10:44 .bash_profile
-rw-r--r--  1 root root   223  4월  7 10:33 .bashrc
..... (중략) .....
drwxr-xr-x  2 root root  4096  4월  6 12:17 Desktop
-rw-------  1 root root  4210  1월 25 22:54 anaconda-ks.cfg
-rw-r--r--  1 root root     0  4월  7 12:38 file_0407.log
-rw-r--r--  1 root root 54631  1월 25 22:54 install.log
-rw-r--r--  1 root root  9641  1월 25 22:50 install.log.syslog

# cd /test
# ls -l
합계 0
drwxr-xr-x. 2 root root 19  3월 12 11:49 dir1
-rw-r--r--. 1 root root  0  3월 12 11:49 file1
# touch .file2
# ls -l
합계 0
drwxr-xr-x. 2 root root 19  3월 12 11:49 dir1
-rw-r--r--. 1 root root  0  3월 12 11:49 file1
# ls -la   /* 숨김파일은 a 옵션을 사용해야만 확인가능하다. */
합계 0
drwxr-xr-x.  3 root root  45  3월 12 12:01 .
dr-xr-xr-x. 19 root root 249  3월 11 18:08 ..
-rw-r--r--.  1 root root   0  3월 12 12:01 .file2
drwxr-xr-x.  2 root root  19  3월 12 11:49 dir1
-rw-r--r--.  1 root root   0  3월 12 11:49 file1

리눅스 운영체제에서는 다양한 명령어를 사용하여 파일 및 디렉토리를 관리할 수 있습니다.

이러한 명령어들은 쉘에서 실행되며, 쉘은 사용자와 리눅스 시스템 간의 인터페이스 역할을 합니다.

파일 및 디렉토리 관리 명령어 중에서도 가장 많이 사용되는 명령어는 ls입니다.

ls 명령어는 현재 위치한 디렉토리의 파일과 디렉토리를 보여주며, 옵션에 따라 다양한 정보를 제공합니다.

예를 들어, -l 옵션은 파일의 속성 정보를 자세히 보여주고, -a 옵션은 숨겨진 파일까지 모두 보여줍니다.

또한, -i 옵션은 파일과 디렉토리에 지정된 inode 번호를 표시합니다.

cd 명령어는 디렉토리를 이동할 때 사용합니다.

 

예를 들어, cd /test 명령어는 현재 위치한 디렉토리가 아닌 /test 디렉토리로 이동합니다.

이를 통해 디렉토리 간 이동이 용이해집니다.

파일을 생성하거나 수정할 때는 touch 명령어를 사용합니다.

이 명령어를 사용하면 빈 파일을 생성하거나 파일의 수정 시간을 변경할 수 있습니다.

예를 들어, touch .file2 명령어는 /test 디렉토리에 .file2라는 빈 파일을 생성합니다.

또한, touch 명령어는 파일의 수정 시간을 변경할 때도 사용할 수 있습니다. 이를 통해 파일의 생성 시간과 수정 시간을 정확하게 관리할 수 있습니다.

alias 명령어를 사용하여 자주 사용하는 명령어에 별칭을 지정할 수도 있습니다.

이를 통해 명령어를 간편하게 사용할 수 있습니다. 예를 들어, alias ls='ls --color=tty -h' 명령어는 ls 명령어를 입력할 때마다 --color=tty -h 옵션을 함께 사용하여 출력 결과를 보기 쉽게 만들어 줍니다.

또한, 명령어를 조합하여 복잡한 작업을 수행할 수 있습니다.

예를 들어, ls -altr /tmp 명령어는 /tmp 디렉토리의 파일과 디렉토리를 시간순으로 정렬하여 출력합니다.

또한, find, grep, sed, awk 등 다양한 명령어를 사용하여 파일에서 원하는 정보를 추출하거나 특정 문자열을 검색할 수 있습니다.

리눅스 운영체제에서는 이러한 명령어들을 활용하여 파일 관리, 시스템 모니터링, 프로세스 관리 등 다양한 작업을 수행할 수 있습니다.

따라서, 이러한 명령어들을 숙지하고 활용하는 것은 리눅스 운영체제를 사용하는 데 필수적입니다. 이를 통해 더욱 효율적인 리눅스 사용이 가능해집니다.

 

"ls -F" 옵션 실습

# /test 디렉토리로 이동
cd /test

# /test/ 하위 모든 파일 삭제
rm -rf /test/*

# /etc/passwd 파일을 복사하여 일반 파일인 file1 생성
cp /etc/passwd file1

# file1을 가리키는 심볼릭 링크 파일2 생성
ln -s file1 file2

# /bin/ls 파일을 복사하여 실행 파일인 file3 생성
cp /bin/ls file3

# 디렉토리 파일인 dir1 생성
mkdir dir1

# /test/의 모든 파일과 파일 유형을 함께 출력
ls -F   (dir1/  file1  file2@  file3*)

# /test/의 모든 파일 출력
ls (dir1   file1  file2   file3 )

이 코드 블록에서는 /test 디렉토리에서 여러 파일 작업을 수행합니다.

cd 명령어를 사용하여 /test 디렉토리로 이동한 후 rm 명령어와 -rf 옵션을 사용하여 디렉토리 내의 모든 파일을 재귀적으로 삭제합니다.

그런 다음 cp 명령어를 사용하여 /etc/passwd의 내용을 복사하여 일반 파일인 file1을 생성합니다.

-s 옵션을 사용하여 file1을 가리키는 심볼릭 링크인 file2를 생성합니다.

/bin/ls의 내용을 복사하여 실행 파일인 file3을 생성합니다.

마지막으로 mkdir 명령어를 사용하여 디렉토리 파일인 dir1을 생성합니다.

ls 명령어를 사용하여 /test 디렉토리의 내용을 나열할 수 있습니다. -F 옵션은 파일 유형을 나타내며, 디렉토리는 슬래시(/), 심볼릭 링크는 "@"로, 실행 파일은 "*"로 표시됩니다.

-F 옵션 없이 ls를 사용하면 디렉토리의 내용만 나열됩니다.

이 코드 블록은 Linux 환경에서 기본 파일 작업을 수행하는 방법과 cd, rm, cp, ln, mkdir, ls와 같은 명령어를 사용하는 방법을 보여줍니다.

 

[참고]

리눅스의 경우는 파일, 디렉터리등 종류가 다르다면 다른 색깔로 표시를 해주기 때문에 –F의 경우 그렇게 사용량이 많지는 않다.

.

ls -i' 옵션 실습

  • i는 Index NODE인 inode를 표시해주기 위한 옵션이다.
  • 파일의 속성정보를 담고있는 inode의 구분번호를 표시해 주고 있다.
  • ls –l로 명령어를 입력한 경우의 출력되는 결과들이 저장되어 있다.

데이터는 Data Block이라는 공간에 별도로 저장되어있다

# ls -li /test/file1 /* inode 번호까지 확인 */
70133672 drwxr-xr-x 2 root root 18  3월  5 12:42 /test/dir1

# ls -ldi /test/dir1 /* inode는 각각 고유한 값을 지님 */
701325642 drwxr-xr-x 2 root root 18  3월  5 12:42 /test/dir1
inode - 파일과 디렉토리에 지정되어 있는 번호

이전에 제공된 정보를 보완하여, 리눅스에서는 파일이나 디렉토리를 찾을 때 해당 파일이나 디렉토리의 이름이나 위치보다는 inode 번호를 활용합니다.

이는 파일이나 디렉토리의 이름이나 위치가 변경되어도 해당 파일이나 디렉토리를 찾아낼 수 있게 하기 때문입니다.

위의 명령어에서는 ls 명령어의 -i 옵션을 사용하여 inode 번호를 확인하고, 파일과 디렉토리 각각의 inode 번호를 확인할 수 있습니다.

파일이나 디렉토리의 inode 번호는 각각 고유한 값을 갖기 때문에, 이를 활용하여 파일 시스템에서 파일이나 디렉토리를 찾을 수 있습니다.

또한, ls 명령어에는 다양한 옵션이 존재합니다.

-l 옵션은 파일이나 디렉토리의 자세한 정보를 출력하며, -a 옵션은 숨겨진 파일이나 디렉토리를 포함하여 모든 파일과 디렉토리를 출력합니다.

-R 옵션은 디렉토리의 하위 디렉토리를 포함한 모든 파일과 디렉토리를 출력합니다.

-t 옵션은 수정 시간을 기준으로 파일이나 디렉토리를 정렬하며, -r 옵션은 역순으로 정렬합니다.

-F 옵션은 파일 유형을 나타내는 문자를 파일 이름 끝에 추가하여 출력합니다.

-d 옵션은 디렉토리 자체의 정보만 출력합니다.

-u 옵션은 액세스 시간을 기준으로 파일이나 디렉토리를 정렬합니다.

또한, alias 명령어를 활용하면 자주 사용하는 명령어에 별칭을 지정하여 사용할 수 있습니다.

이를 활용하면 명령어를 더 간편하게 사용할 수 있습니다.

예를 들어, ls -l | grep "^-" 명령어를 lsf라는 별칭으로 지정하면, lsf 명령어로 해당 명령어를 실행할 수 있습니다.

마지막으로, 파일 시스템에서 파일이나 디렉토리를 찾을 때는 inode 번호를 활용하는 것이 좋습니다. 따라서, ls 명령어의 -i 옵션을 활용하여 inode 번호를 확인하는 것이 유용합니다.

 

파일 또는 디렉토리만 출력

alias(별칭) 명령어를 간편하게 사용하기 위해 사용한다

명령어 설명
alias ls='ls -h --color=tty' ls 명령어 사용 시 자동으로 -h, --color=tty 옵션을 사용하도록 설정합니다.
alias 현재 설정된 alias 목록을 표시합니다.
unalias ls ls 명령어에서 설정한 alias를 해제합니다.
# alias lsf='ls -l | grep "^-"' /* 파일인 경우 속성 정보에 -로 표시 */
# alias lsd='ls -l | grep "^d"'/* 디렉토리인 경우 속성 정보에 d로 표시 */
# cd 
# lsf
-rw------- 1 root root  4210 Jan 25 22:54 anaconda-ks.cfg
-rw-r--r-- 1 root root 54631 Jan 25 22:54 install.log
-rw-r--r-- 1 root root  9641 Jan 25 22:50 install.log.syslog
-rw-r--r-- 1 root root     0 Jan 26 07:34 local-host-names
-rw------- 1 root root 11665 Jan 26 07:32 mbox
# lsd
drwxr-xr-x 2 root root  4096 Jan 26 02:13 Desktop

위의 명령 프롬프트 출력은 리눅스 시스템에서 일반적으로 사용되는 두 가지 명령어인 "cd"와 "ls"를 보여주는 것입니다. "cd" 명령어는 작업 디렉토리를 변경하는 데 사용되고, "ls" 명령어는 특정 디렉토리의 파일과 디렉토리 목록을 나열하는 데 사용됩니다.

위의 예에서 사용자는 먼저 "cd"를 입력하여 작업 디렉토리를 원하는 위치로 변경합니다. 다음으로 "lsf"를 입력합니다. "lsf"는 "ls -l | grep "^-"의 별칭입니다. "|" 기호는 "ls -l" 명령의 출력을 "grep" 명령으로 리디렉션합니다. "grep" 명령은 하이픈 "-"으로 시작하는 라인을 찾아 출력합니다. 이 명령은 정규 파일만 표시하고 디렉토리 및 기타 특수 파일을 제외하는 데 유용합니다.

"lsf" 명령의 출력은 현재 디렉토리의 일반 파일 목록을 보여줍니다.

목록에는 "anaconda-ks.cfg," "install.log," "install.log.syslog," "local-host-names," 및 "mbox" 파일이 포함됩니다.

각 파일은 권한, 소유자, 그룹, 크기 및 수정 시간과 함께 표시됩니다.

다음으로 입력된 명령은 "lsd"입니다. "lsd"는 "ls -l | grep "^d"의 별칭입니다.

이 명령은 이전 명령과 유사하지만 "d"로 시작하는 라인을 검색하여 디렉토리만 표시합니다.

이 명령의 출력은 현재 디렉토리의 디렉토리 목록을 보여줍니다.

이 경우 "Desktop"이라는 하나의 디렉토리만 있습니다.

이러한 명령은 리눅스 시스템에서 파일 및 디렉토리를 탐색하고 관리하는 데 매우 유용합니다.

"lsf" 및 "lsd"와 같은 별칭을 사용하면 명령 입력 시간과 노력을 절약할 수 있습니다.

 

(참고) 선언된 alias 확인

# alias        alias의 전체목록을 확인
# alias lsf    인자값으로 생성되어 있는 alias가 있다면 출력

ls 명령어에 대한 정보를 알아보겠습니다.

ls 명령어는 디렉토리의 내용을 나열하는 데 사용됩니다.

기본적으로 현재 디렉토리의 모든 파일 및 디렉토리를 알파벳순으로 나열합니다.

그러나 ls 명령어의 출력을 사용자가 원하는 형태로 바꿀 수 있는 다양한 옵션이 있습니다.

가장 유용한 옵션 중 하나는 -l 옵션입니다.

이 옵션을 사용하면 디렉토리의 내용을 긴 형식으로 나열합니다.

이는 파일 유형, 권한, 소유자, 그룹, 크기 및 수정 시간과 같은 정보를 포함합니다.

또 다른 유용한 옵션은 -a 옵션입니다. 이 옵션을 사용하면 숨겨진 파일 및 디렉토리도 포함하여 출력합니다.

숨겨진 파일 및 디렉토리는 이름이 점(.)으로 시작하는 파일이나 디렉토리로, 주로 설정 파일 등에서 사용됩니다.

또한 옵션을 조합하여 더 구체적인 출력을 만들 수 있습니다.

예를 들어, ls -l -a 명령어는 숨겨진 파일 및 디렉토리를 포함하여 디렉토리의 모든 파일과 디렉토리를 긴 형식으로 나열합니다.

옵션 외에도, ls 명령어를 더 편리하게 사용하기 위해 별칭을 사용할 수 있습니다.

별칭은 자주 사용하는 명령어에 대한 단축어를 만드는 데 사용됩니다.

예를 들어, ls -l | grep "^-"와 ls -l | grep "^d" 명령어는 파일 또는 디렉토리만을 긴 형식으로 나열하는 데 유용합니다.

이러한 명령어를 lsf 및 lsd라는 별칭으로 만들어 사용할 수 있습니다.

다음은 이러한 별칭을 만드는 명령어입니다:

alias lsf='ls -l | grep "^-"'
alias lsd='ls -l | grep "^d"'

이 명령어를 .bashrc 파일에 추가하여 터미널 세션 간에 유지할 수 있습니다.

요약하자면, ls 명령어는 디렉토리의 내용을 나열하는 강력한 도구입니다.

옵션 및 별칭을 사용하여 출력을 사용자의 요구에 맞게 사용자 정의할 수 있으며, 명령어를 더 편리하게 사용할 수 있습니다.

 

ls -h 옵션 설정(-h : human)

  • alias를 지정하지 않은 경우
# cd /test
# cat /etc/services >> file1
# cat /etc/services >> file1
# cat /etc/services >> file1
# cat /etc/services >> file1
# cat /etc/services >> file1
# ls –l /etc/services
-rw-r--r--. 1 root root 670293  6월  7  2013 /etc/services
# ls -l file1 
-rw-r--r--. 1 root root 5364652  3월 12 12:13 file1
# ls -lh file1
-rw-r--r--. 1 root root 5.2M  3월 12 12:13 file1

Bash 쉘은 파일과 디렉토리를 관리하는 강력한 도구입니다.

이 예제에서는 사용자가 "cd" 명령어를 사용하여 /test 디렉토리로 이동합니다.

디렉토리에 들어간 후, 사용자는 "cat" 명령어와 ">>" 연산자를 사용하여 /etc/services의 내용을 "file1"이라는 파일에 추가합니다.

이 연산자는 "cat" 명령의 출력을 파일의 끝에 추가하도록 지시합니다.

이것은 기존 파일에 새 데이터를 추가하는 유용한 명령어입니다.

"/etc/services"의 내용을 "file1"에 추가한 후, 사용자는 "ls" 명령어를 사용하여 파일에 대한 정보를 표시합니다.

첫 번째 "ls" 명령에서 사용자는 /etc/services의 파일 권한, 소유권 및 크기를 표시합니다. 두 번째 "ls" 명령에서 사용자는 "file1"의 파일 권한, 소유권 및 크기를 표시합니다.

"-l" 옵션은 파일 권한, 소유권, 크기 및 기타 정보를 포함한 긴 형식으로 정보를 표시합니다.

"-h" 옵션은 파일 크기를 인간이 이해하기 쉬운 형식으로 표시하여 파일 크기를 한눈에 파악하기 쉽게합니다.

이러한 명령을 사용하여 사용자는 Bash 쉘에서 파일을 쉽게 조작하고 모니터링 할 수 있습니다.

Bash 쉘은 개발자, 시스템 관리자 및 파일을 정기적으로 사용하는 다른 사용자들에게 강력한 도구를 제공하기 위해 다양한 명령과 옵션을 제공합니다.

이전과 달리 현재는 byte 단위로 용량을 보게 된다면 단위가 너무 많기 때문에 힘들다.

용량이 정확해야 하지 않는다면 –h 옵션을 사용하여 사람이 보기 쉬운형태로 변환하여 사용한다.

 

# ls -lh /etc/services
-rw-r--r--. 1 root root 670293  6월  7  2013 /etc/services
# .bashrc 설정 파일을 수정하려면 터미널에서 다음 명령어를 실행하십시오:
# vi ~/.bashrc     (# 또는 gedit ~/.bashrc)

..... (일부 생략) .....
#
# 특정 설정
#
# 아래 줄은 'ls' 명령어에 대한 별칭을 설정하여 색상이 지정된 텍스트로 출력하고 더 인간 친화적인 파일 크기로 표시합니다.
alias ls='ls --color=tty -h'

# 변경 내용을 저장하고 파일을 종료합니다.

# 그런 다음 변경 사항을 적용하려면 다음 명령어를 실행하십시오:
# . ~/.bashrc     (# 또는 source ~/.bashrc)

별칭을 사용하면 시간과 타이핑을 절약할 수 있습니다.

별칭을 설정하면 긴 명령을 실행하는 대신 짧고 기억하기 쉬운 명령을 사용할 수 있습니다.

이 경우 터미널에서 "ls"를 입력하면 실제로 "ls --color=tty -h"가 실행되어 현재 폴더의 파일과 디렉토리 목록이 출력되며, 파일은 유형에 따라 다른 색상으로 강조되며 크기도 더 인간 친화적인 형식으로 표시됩니다.

참고로, .bashrc 파일을 수정한 변경 사항은 새로운 터미널 세션에서만 적용됩니다.

또는 현재 세션에서 변경 사항을 적용하려면 "source" 또는 "." 명령어를 실행하십시오.

  • alias를 지정한 경우
# ls –l /etc/services
-rw-r--r--. 1 root root 655K  6월  7  2013 /etc/services

보기 편한 형태로 용량이 변경되었다.

 

 "ls -altr" 명령어 실습

# 다음 명령어는 /tmp 디렉토리 내의 모든 파일과 디렉토리를 최종 수정 시간을 기준으로 정렬하여 나열합니다.
# -t 옵션은 목록을 시간순으로 정렬합니다.
# -r 옵션은 정렬 순서를 반대로 바꿔서 가장 오래된 파일과 디렉토리가 먼저 나열되도록 합니다.

ls -altr /tmp

이 명령어는 /tmp 디렉토리에서 가장 최근 수정된 파일과 디렉토리를 확인하는 데 유용합니다. 기본적으로 ls 명령어는 파일 및 디렉토리를 알파벳 순서대로 나열하지만, 특정 목적에는 그렇게 유용하지 않을 수 있습니다. -t와 -r 옵션을 사용하여 출력을 사용자 정의하여 더욱 효과적으로 사용할 수 있습니다.

이전파일이 상단에 출력된다.

 

[참고]
# cd /Log_dir 
# ls –altr

ls 명령어는 Unix 계열 시스템에서 가장 기본적인 명령어 중 하나입니다.

ls 명령어는 현재 디렉토리나 지정된 디렉토리의 파일과 디렉토리 목록을 출력하는 데 사용됩니다.

ls 명령어는 매우 다양한 옵션을 제공합니다. 이러한 옵션들을 사용하여 ls 명령어의 출력을 사용자 정의할 수 있습니다.

몇 가지 일반적인 ls 명령어의 옵션을 살펴보겠습니다:

  • l: 이 옵션은 파일과 디렉토리의 상세 정보를 표시합니다. 출력에는 파일 및 디렉토리 이름, 권한, 소유권, 크기 및 수정 시간이 포함됩니다.
  • a: 이 옵션은 디렉토리 내의 모든 파일을 표시합니다. 이 옵션은 숨김 파일도 포함합니다.
  • R: 이 옵션은 디렉토리와 그 하위 디렉토리의 내용을 재귀적으로 표시합니다.
  • h: 이 옵션은 파일 크기를 알기 쉬운 형식으로 표시합니다. 이 옵션은 파일 크기를 KB 또는 MB와 같은 단위로 변환합니다.
  • t: 이 옵션은 수정 시간을 기준으로 디렉토리 내용을 정렬합니다. 이렇게 하면 가장 최근에 수정된 파일이 먼저 나타납니다.
  • u: 이 옵션은 액세스 시간을 기준으로 디렉토리 내용을 정렬합니다. 이렇게 하면 가장 최근에 액세스한 파일이 먼저 나타납니다.
  • r: 이 옵션은 목록을 역순으로 정렬합니다.
  • F: 이 옵션은 파일 유형을 표시합니다. 이 옵션은 디렉토리 이름 뒤에 슬래시(/)를 추가하거나 실행 파일 이름 뒤에 별표(*)를 추가합니다.
  • d: 이 옵션은 디렉토리 자체의 정보만을 표시합니다.
  • i: 이 옵션은 각 파일 및 디렉토리의 inode 번호를 표시합니다.

ls 명령어는 유닉스 기반 시스템에서 가장 자주 사용되는 명령어 중 하나입니다. 그 이유는 ls 명령어가 파일 및 디렉토리를 검색하고 관리하는 데 매우 유용하기 때문입니다. ls 명령어로 파일 및 디렉토리를 효율적으로 관리할 수 있습니다.

반응형