일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Spring Security
- testing
- Publishing
- 백준알고리즘
- 부트캠프
- 페어프로그래밍
- 문자열뒤집기
- 알고리즘
- 회고
- 깃허브
- Spring Data JDBC
- 첫글자대문자
- spring data jpa
- CLI명령어
- 제네릭스
- 스프링
- 백엔드
- 컬렉션프레임워크
- HTML
- fibonacci
- 자바
- 자료구조
- 거듭제곱
- 데일리코딩
- FilterChain
- 인텔리제이
- 그리디
- CSS
- java
- 계산기만들기
Archives
- Today
- Total
나의 모양
[Linux] 확장자가 없는 리눅스 파일들 본문
❤️ 들어가며
- CLI 명령어 실습을 하는데 졸려서 눈뜨고 잠깐 졸았다 ㅋ😪 그래서 touch 명령어로 파일을 생성할 때 .txt 확장자를 붙여야되는데 파일명만 넣고 엔터를 때렸다. 어? 근데 생기네? 😮 어? 그럼 확장자는? 😮 어? 뭐가 생긴거지? 😮 하는 흐름으로 찾아보게 된 touch와 확장자의 상관관계!
- 일단 확장자 없이 생성한 파일(bye)이 처음엔 폴더에 생기지 않았다(처음엔 이상한것도 몰랐다ㅋㅋ 그냥 ls에 파일이 안나오길래 안되나? 하고 다시 아무 파일명이나(kk) 넣고 다시 확인해봤더니 생겼다! 그럼 touch bye는 왜 안생긴거지? 🤔
💛❓ & ❗
🤍 확장자 관련 흥미로운 이야기
- 확장자는 MS-DOS(윈도우)의 전유물 같은 것으로 어떤 파일을 규정할 때 사용하지만, 유닉스는 실행 가능한 속성을 갖고 있어서 파일 시스템에서 직접 설정해줄 수 있기 때문에 확장자가 필요없다.
- 윈도우 UI는 파일 확장자를 특정 파일 형식과 프로그램을 연결할 수 있는 규칙을 추가했다. 그리고 사람들이 문서를 공유하면서 파일 확장자를 사용해서 문서 유형을 표시했고, GUI가 가능한 리눅스의 일부도 이 규칙을 따랐다고 한다.
🤍 touch명령어를 사용해서 생성되는 파일 유형
- 파일형식(filetype)은 없고 비트랑 바이트 한 묶음
🤍 파일 형식(확장자)로 UNIX가 구분하는 것
- Regular files: 명령어 touch 로 생성 가능
- Directories: 명령어 mkdir 로 생성 가능
- Symlinks: -s 플래그가 지정된 경우 ln 명령으로 생성 가능
- UNIX domain socket files: 필요에 따라 다양한 데몬으로 생성 가능
- Block / Character special files: 명령어 mknod 로 생성 가능
- FIFO: 명령어 mkfifo 로 생성 가능
🤍 touch로 파일 생성 시 확장자 지정을 안하면?
- 빈 파일 생성
🤍 리눅스에서 직접 touch 확인
man touch
💚 결론
- 확장자는 특정 파일 형식을 확인하기 위한 것이다. 확장자가 파일 형식을 결정하는 거라고 생각했는데, 윈도우 말고 다른 OS에서 확장자는 특별히 고려해야 할 것은 아니다.
- touch 명령어로 만들어진 파일은, 사실 텍스트 파일도, 바이너리 파일도 아니다. touch 명령어는 빈 파일을 만들고 그것을 원하는 것으로 설정이 가능하다.
💙 마치며
- 졸음(ㅋㅋ)을 계기로 까만 화면에 하얀 글씨가 대부분인 터미널에 CLI 명령어와 유닉스(리눅스)에 대한 흥미로운 사실을 알 수 있어서 좋았다. 확장자가 없는 파일이 있을거라고 생각해본 적이 없어서 처음엔 잘 이해가 안 갔는데 사람들 글을 읽으면 읽을수록 신기했다.
💜 Ref.
https://www.quora.com/Why-is-there-no-extension-in-Linux
Comments