본문 바로가기
DevOps/Linux

[Linux] 리눅스 파일 및 폴더 생성

by Forsaken Developer 2023. 12. 8.
728x90
728x90

[Linux] 리눅스 파일 및 폴더 생성

touch 명령어

touch file1

 

새로운 파일 또는 여러개의 파일을 생성할 때 사용하는 명령어이다.

touch의 매뉴얼 페이지 안에서 touch 명령어는 파일의 타임스탬프를 변경한다고 되어있다.

즉 각 파일의 접근 및 수정 시간을 현재 시간으로 업데이트 한다.

존재하지 않는 파일 인자는 비어 있는 상태로 생성되며 아직 존재하지 않는 파일의 이름을 touch에 전달한 것이다.

이미 존재하는 파일을 touch에 전달 하면 그것을 단순히 접근 및 수정 시간만 업데이트한다.

대부분의 사람들이 파일을 생성하기 위해서 사용한다.

touch 명령어는 어떤 종류의 파일을 만들던지 상관없다.

touch file1 file2 file3

여러개의 파일을 한번에 생성할 수도 있다.

touch를 입력하고 파일 이름들을 띄어쓰기를 사용해서 구분해준다.

touch dir/file1

이것들을 현재 작업 중인 디렉토리에 생성하지 않아도 되고 경로를 지정해 줄 수 있다.

file명령어

file image.jpeg

 

파일의 확장자명과 실제 파일의 종류와는 차이가 있다.

파일이름에 있는 파일 확장자명이 실제 파일의 종류를 결정하는 것은 아니다.

file 명령어는 파일 종류를 알려준다.

file image.jpeg을 입력하면 파일의 종류인 JPEG, 해상도, 세그먼트 길이 등 여러가지 파일정보를 확인할 수 있다.

그렇지만 아무 확장자명으로 지으면 다른 응용프로그램에는 해당 확장자로 인식한다.

.jpeg으로 된 파일이면 이미지뷰어로 .txt 파일로 된 파일을 텍스트 편집기로 연다.

따라서 실제 파일의 기본 형식과 충돌하는 경우에 운영체제를 교란 시킬 수 있기때문에  확장자명이 관련있다.

 그렇지만 확장자명이 실제 파일의 종류를 결정하는 것은 아니다.

파일명 짓기

touch를 사용해서 파일을 생성할 때 피해야 하는 사항이 있다.

포함하는 것을 피해야할 몇가지 문자들이 있는데 기본적으로 특수 문자들이 있다.

슬래쉬와 역슬래쉬, 물음표, 별표, 콜론 등은 실제로 문제가 될 수 있다.

이것들은 쉘에서 특별한 의미를 가지고 있고 이것들을 파일명에 입력하게 되면 굉장한 혼란을 야기한다.

보통의 경우엔 숫자와 문자를 사용하고 필요한 경우에 하이픈, 대시 정도를 사용한다.

touch hello world

공백을 사용할 수는 있으나 공백은 피해야 한다.

파일명이 hello world라 하면 두개의 다른 변수 인자로 취급되어 두 개의 파일이 생성된다.

touch "hello world"

파일명에 공백을 넣고 싶다면 따옴표로 감싸주면 된다.

따옴표로 감싸주면 이것을 하나의 값으로 취급한다.

하지만 이렇게 되면 여러가지 이유로 귀찮아진다.

file hello world

"hello world" 파일을 file 명령어로 실행하려고 하면 동작하지 않는다.

file 명령어는 여러개의 값을 전달하는 것을 허용하기 때문에 hello라고 불리는 파일을 찾으려고 하고 world라는 파일을 찾으려고 한다.

file "hello world"

따라서 이 경우에도 따옴표로 감싸줘야 한다.

file hello\\ world

또 다른 옵션은 이스케이프 문자로 알려져 있는 역슬래쉬를 사용하는 것이다.

역슬래쉬는 쉘한테 이 역슬래쉬 문자 뒤에 오는 무언가는 어떠한 특별한 의미를 지니지 않는다는 것을 알려 준다.

따라서 파일명 또는 폴더명에 공백을 사용하는 것보다는 대시를 사용해 hello-world, 혹은 언더바를 사용해서 hello_world 또는 대소문자를 섞어서 카멜케이스라 불리는 helloWorld 이런식으로 작성한다.

mkdir 명령어

mkdir dir

make directory의 약자인 mkdir을 사용해서 디렉토리를 생성할 수 있다.

touch 처럼 공백으로 구분해서 여러개의 디렉토리를 생성할 수 있다.

mkdir ~/dir

다른 폴더들의 안에 생성하는 것도 역시 가능하다.

대부분의 명령에서 처럼 절대 경로 또는 상대 경로를 전달해 줄 수 있다.

mkdir parents/child

유용한 옵션이 하나 있다.

한번에 하나 이상의 중첩된 디렉토리를 만들고 싶을 수 있다.

parents라는 디렉토리는 없어서 child라는 디렉토리를 생성할 수 없다.

mkdir -p parents/child

ㅍ parents, parents를 의미하는 -p라는 옵션을 전달하게 되면  child라는 디렉토리는 생성되고 필요하다면 그 과정에서 상위 디렉토리까지 생성한다.

728x90
반응형

'DevOps > Linux' 카테고리의 다른 글

[Linux] 리눅스 파일 시스템 탐색  (0) 2023.12.07
[Linux] 리눅스 도움말 확인하기  (2) 2023.12.06
[Linux] 리눅스 명령어 기초  (2) 2023.12.05

댓글