나의 모양

[Linux] 확장자가 없는 리눅스 파일들 본문

WILT/Linux

[Linux] 확장자가 없는 리눅스 파일들

kexon 2022. 7. 3. 14:02

❤️ 들어가며

  • 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

 

Why is there no extension in Linux?

Answer (1 of 4): Do you mean file name extensions like exe, txt and bat? If so, they’re not necessarily there because they mean nothing in the Unix/Linux world. File types in this world are determined by the file’s characteristics, is it executable, a

www.quora.com

 

Comments