hyperskill - Explore folders and files 영어 원문
당신이 터미널에서 작업 할 때, 폴더 내부의 콘텐츠를 보고 싶을 겁니다.
이는 파일에 대한 일반적인 정보를 알 수 있도록 돕습니다 : 누가 생성했는지, 언제인지, 등등..
이런 정보를 보기 위해 분리된 유틸리티가 있는데, 이는 Unix system 에서 ls
라고 부릅니다.
어떻게 ls
를 사용하고, 주요 옵션들은 무엇인지 알아 내 봅시다.
Basic options - ls
기본 옵션들
이제 시작하는 분들을 위해서, 우리는 명령어 구문을 말해야 합니다.
구문은 이렇게 생겼습니다 : $ ls <options> /path/to/folder
.
예제로 test 폴더가 있다고 가정 해 봅시다.
test 폴더에는 my_python.py
, Poems.pdf
, script.sh
, story.txt
파일이 있다고 가정합니다.
가장 간단한 구문의 예시로, 당신은 터미널을 열고, 어떠한 추가 파라미터 없이 ls
만 작성할 수 있습니다.
그러면 당신은 이 test
폴더에 있는 모든 파일들을 볼 수 있습니다 :
$ ls
my_python.py Poems.pdf script.sh story.txt
여기서 당신은 그냥 파일의 이름 리스트를 볼 수 있습니다.
만약 이러한 파일에 대한 더 많은 것을 알고 싶다면, -l
옵션이 필요합니다 :
결과물은 자세한 리스트가 될 것이며, 해당 리스트는 파일의 주인, 파일의 그룹, 생성 일자, 크기 를 보여줍니다 :
$ ls -l
total 52
-rw-r--r-- 1 alina alina 2578 feb 25 10:44 my_python.py
-r-------- 1 alina alina 26346 feb 18 22:21 Poems.pdf
-rw-r--r-- 1 alina alina 35 jan 28 11:30 script.sh
-rw-rw-r-- 1 alina alina 13405 jan 22 21:58 story.txt
따라서 지금 당신은 누가 파일을 생성했는지, 그들이 언제 생성했는지,
누가 볼수 있고, 조정하고, 실행할 수 있는 권리를 가지고 있는지 알 수 있습니다. : ex - -rw-rw-r--
하지만 여기에 결과물에 조그마한 문제가 있습니다 : 파일의 실제 사이즈가 조금 지저분합니다.
쉽게 읽게 만들기 위해서 우리는 상세 보기 옵션을 결합 할 수 있는데,
-h
혹은 --human-readable
플래그를 통해 결합이 가능합니다 :
$ ls -lh
total 52
-rw-r--r-- 1 alina alina 2.6K feb 25 10:44 my_python.py
-r-------- 1 alina alina 26K feb 18 22:21 Poems.pdf
-rw-r--r-- 1 alina alina 35 jan 28 11:30 script.sh
-rw-rw-r-- 1 alina alina 14K jan 22 21:58 story.txt
이 방식은 kibibytes (K) - 킬로바이트 로 감싸진 파일의 크기를 볼 수 있게 해 주며,
파일이 충분히 크다면, mebibytes (M) - 메가바이트, 심지어 gibibytes (G) 로 싸여진 파일의 사이즈를 보여줍니다.
ls
명령어의 결과물은 기본적으로 보통 보여지는 파일들입니다.
만약 당신이 히든 파일을 포함하고 있는 모든 파일들을 봐야 한다면요?
위의 목적을 위한 -a
파라미터가 있습니다 :
$ ls -a
. .python_history
.. snap
.android .sqldeveloper
.audacity-data .ssh
.bash_history .steam
폴더에서 파일을 탐색 할 때 위에서 제시했던 모든 옵션들을 사용하시고,
해당 파일들에 대한 정보를 찾아 보세요.
가끔씩 당신은 특정 순서에 따라 결과물을 정렬 하고 싶을 텐데요,
따라서 다음 섹션에서 이를 어떻게 수행하는 지 볼 겁니다.
Sorting files - 파일 정렬해서 보기
첫 번째로, 파일의 사이즈로 이들을 정렬 할 수 있습니다 : 가장 큰 것에서 작은것으로, 그 반대로 둘 중 하나.
이 경우, 정렬에 -S
파라미터가 필요하며, -Sr
파라미터의 경우 반대 순서로 보여줍니다 :
ls 명령어의 옵션 설명 :
-s
: 파일의 사이즈를 보여줍니다.-S
: 파일의 크기에 따라 정렬하는데, 가장 큰 것에서 작은 것으로 보여줍니다.-Sr
: 파일의 크기 정렬은 같으나, 가장 작은 것에서 큰 것으로 보여줍니다.
$ ls -sS
total 52
28 Poems.pdf 16 story.txt 4 my_python.py 4 script.sh
$ ls -sSr
total 52
4 script.sh 4 my_python.py 16 story.txt 28 Poems.pdf
우리는 파일들의 실제 크기를 보여주기 위해 -s
플래그를 포함했으나,
정렬에는 중요하지 않습니다.
두 번째로 또 다른 옵션은 생성 시간에 의해 파일들을 정렬합니다.
-t
옵션을 사용하여 최근 생성된 것 부터 오래 된 것으로 파일들을 정렬하여 보여주고,
tr
옵션을 사용하면 반대로 보여주는데, 가장 오래 된 것 부터 보여줍니다 :
$ ls -t
my_python.py Poems.pdf script.sh story.txt
$ ls -tr
story.txt script.sh Poems.pdf my_python.py
파일들을 정렬하기 위해 또 다른 방식이 있는데요,
이 방식들은 man ls
혹은 ls --help
명령어를 구동하여 읽을 수 있습니다.
이번 주제에서, 우리는 ls
명령어의 가장 기본적인 옵션들을 살펴보았습니다.
이 옵션들은 폴더의 파일들을 보여주었습니다.
그렇다면, 만약 당신이 디렉토리들의 전체적인 구조를 보고 싶다면요?
tree
명령어가 위에 대한 것을 도와 줄 겁니다.
Tree catalog structure - 트리 구조 목록
macOS
에서는brew install tree
를 터미널에 입력하여 다운로드 할 수 있습니다.
주의 할 것이 있는데,tree
명령어를 실행하는 디렉토리가 많은 파일을 포함하고 있는 디렉토리인지 보아야 합니다.
루트 디렉토리에서 실행한다면,
많은 시간이 걸리므로, 도중에command
+d
혹은control
+d
로 멈출 수 있습니다.
tree
명령어는 디렉토리의 구조를 스스로 tree 구조로 보여줍니다.
이를 사용하기 위해서, sudo apt install tree
혹은 sudo snap install tree
명령어를 통해
tree를 설치해야 합니다. (당신이 다른 패키지 매니저를 가지고 있다면, 해당 패키지 매니저의 명령어를 사용하세요.)
그리고 나서 원하는 폴더에 가서 이에 대한 구조를 볼 수 있습니다.
예를 들어, 위와 동일하게 test
폴더를 봅시다.
이는 꽤 간단한 구조를 가지고 있으며, 4 개의 파일을 가지고 있고, 어떠한 서브폴더도 가지고 있지 않습니다.
$ tree
.
├── my_python.py
├── Poems.pdf
├── script.sh
└── story.txt
0 directories, 4 files
tree
명령어는 추가 옵션을 가지고 있습니다.
예를 들어, 당신이 오로지 디렉토리 리스트를 보고 싶다면, -d
파라미터를 사용 할 수 있습니다.
우리의 예제에서는, 서브폴더 (하위 폴더) 가 없습니다.
따라서, -d
파라미터를 설명 할 수 있는 예제로 수정 해 보겠습니다.
기존의 test
폴더에, literature
폴더를 추가하고,
Poems.pdf
와 story.txt
파일을 literature
폴더로 이동시킵니다.
따라서, test
폴더는 내부에 하나의 디렉토리를 가지고 있습니다 :
$ tree -d
.
└── literature
1 directory
당신은 더 나아가 tree를 내릴 수 있으며, 관찰 할 트리 레벨의 수를 선택 할 수 있습니다.
L
파라미터를 사용해서 한 레벨을 내려 가세요.
예를 들어, tree -L 2
명령어를 사용해서 두 단계를 내려 가 봅시다.
이러한 방식은 test
폴더의 내용만 볼 수 있는 것이 아니라, literature
폴더의 내용 또한 볼 수 있습니다 :
$ tree -L 2
.
├── literature
│ ├── Poems.pdf
│ └── story.txt
├── my_python.py
└── script.sh
1 directory, 4 files
좋습니다, 지금 당신은 폴더의 구조를 볼 수 있습니다!
하지만, 우리는 하나의 포인트를 더 보아야 합니다.
디렉토리 내부에 서로 다른 타입의 파일들이 있습니다.
따라서, 서로 다른 파일들을 빠르게, 쉽게 파일의 목적을 조사하는 법을 아는 것은 매우 유용 할 겁니다.
이를 위한 특별한 명령어가 있는데, 이는 file
명령어라고 부릅니다.
File content - 파일 콘텐츠
file
명령어는 문서가 실제로 담고 있는 데이터의 타입을 알게 해 줍니다.
이를 사용하기 위해서, file <document_name>
을 터미널에 쳐 보세요.
예를 들어, literature
폴더 내부의 story.txt
파일을 봐 봅시다 :
$ file story.txt
story.txt: UTF-8 Unicode text, with very long lines
당신이 보다시피, 파일은 UTF-8 로 인코딩 된 텍스트를 담고 있습니다.
다음 예제를 위해서, script.sh
라는, 실행 가능한 파일을 봅시다 :
$ file script.sh
script.sh: Bourne-Again shell script, ASCII text excutable
이제 당신은 파일을 열지 않고도 파일의 콘텐츠를 인식 할 수 있습니다.
Conclusion - 결론
그래서, 이번 주제에서 우리는 ls
명령어를 사용하여 폴더의 콘텐츠를 보는 방법과 파일을 정렬하는 방법을 배웠습니다.
그리고 tree
명령어를 사용해서 디렉토리의 구조를 시각화 하는 방식을 배웠습니다.
또한, file
명령어를 사용해서 파일을 열지 않고도 콘텐츠를 알아 낼 수 있는 방법을 배웠습니다.
words to remember
messy : 지저분한, 어질러 놓은
catalog : 목록, 목록을 작성하다
desired : 원하는, 생각하다, 소망하다
fairly : 꽤, 아주, 공정히
examine : 조사하다, 검사핟, 심사하다, 시험하다
'Hyperskill - 컴퓨터 CS 및 영어 독해 > Introduction to Git' 카테고리의 다른 글
Git undo/reset - Git 취소 리셋 돌아가기 (1) | 2024.06.04 |
---|---|
Git internal structure - Git의 내부 구조 (0) | 2024.06.03 |
Semantic versioning - 의미론적 버전 관리 (시멘틱 버저닝) (1) | 2024.06.01 |
Git rebase - Git rebase 기초 (0) | 2024.05.31 |
Gitflow auxiliary branches - Gitflow와 보조 브랜치 (1) | 2024.05.30 |