Linux의 파일 이름에서 공백을 다루는 방법

Dec 14, 2024
리눅스

대부분의 운영 체제와 마찬가지로 Linux는 공간이있는 파일 이름을 지원합니다. 그러나 명령 줄에서 이러한 파일 이름을 사용하는 것이 항상 간단한 것은 아닙니다. 다음은 공간을 포함하는 파일 이름을 처리 할 수있는 몇 가지 방법입니다.

겸손한 파일 이름
Linux 파일 이름의 공간이 고통 인 이유
공간을 인용하고 탈출하는 방법
소스에서 공간 문제를 해결하는 방법
탭 확장은 공간을 쉽게 다루는 데 도움이됩니다
Bash 스크립트의 공간이있는 파일 이름을 사용하는 방법
간격을 두지 만 벗겨지지 않았습니다

겸손한 파일 이름

모든 것이 컴퓨터에 저장되어 있습니다 하드 드라이브 이름이 필요합니다. 이름이 없으면 파일이 없습니다. 컴퓨터가 부팅 될 때 시작된 모든 애플리케이션 및 데몬은 파일 시스템에 식별하고 저장해야합니다. 그 식별은 파일의 이름입니다. '

작성하거나 설치하는 파일에도 동일한 사항이 적용됩니다. 모든 문서, 이미지 및 음악에는 파일 이름이 필요합니다. 파일 이름이 없으면 디지털 자산 중 어느 것도 존재할 수 없습니다. 파일 이름은 매우 중요하기 때문에 Linux는 가능한 한 작곡에 대한 규칙을 적게 부과하려고 노력합니다.

Linux에서 파일 이름에는 전방 슬래시 외에 모든 캐릭터가 포함될 수 있습니다. / ”그리고 널 캐릭터, 0x00 . Null 문자는 문자열의 끝을 표시하는 데 사용되므로 문자열 자체에는 표시 될 수 없거나 Linux는 널 문자의 위치에서 파일 이름을 잘립니다. “ / ”포워드 슬래시는 디렉토리 경로에서 분리기로 사용됩니다.

파일 이름은 케이스에 민감하며 최대 255 바이트 길이 일 수 있습니다 널 캐릭터를 포함하여. 디렉토리 경로는 널 문자를 포함하여 최대 4096 바이트 길이 일 수 있습니다. 이것은 그들의 길이입니다 바이트 , 이것은 직접적으로 동일하지 않을 수 있습니다 캐릭터 . 예를 들어 16 비트 유니 코드 문자는 각각 두 바이트를 가져옵니다.

레트로 컴퓨팅 애호가와 긴 추억을 가진 사람들은 개인용 컴퓨터의 초기에 Microsoft의 디스크 운영 체제 , DOS, 케이스 비면성적이었고 8 자의 파일 이름 제한과 3 개의 문자가 있습니다. 확대 .

파일을 명명했을 때 매우 사려 깊고 때로는 창의적이어야했습니다. 이에 비해 오늘날 우리가 가지고있는 자유는 우리가 원하는 모든 것을 이름을 지정할 수 있다는 것을 의미하며, 해당 파일에 대해 작성한 설명 이외의 다른 것에 대해서는 거의 생각하지 않습니다.

그러나 파일 이름을 사용하면 우리를 가장 자주 여행하는 것은 우리가 입력 한 캐릭터가 아니라 그들 사이의 공간입니다.

Linux 파일 이름의 공간이 고통 인 이유

Bash와 같은 껍질은 공간 분리 된 단어 문자열을 단일 인수가 아니라 개별 명령 인수로 해석합니다. 다음은 사용하는 예입니다 만지다 에게 새 파일을 만듭니다 "내 새 file.txt"라고 불렀습니다.

우리가 볼 수 있듯이 ls 하나는“My”라고 불리는 세 가지 파일, 다른 하나는“New”, 하나는“file.txt”라고합니다.

주목하십시오 만지다 불만을 제기하거나 오류를 던지지 않았습니다. 그것은 우리가 요구하는 것이 무엇이라고 생각하는지를 남깁니다. 그래서 그것은 조용히 우리를 명령 줄로 반환합니다. 우리가 확인을 동기를 부여하지 않으면 계획에 따라 상황이 사라지지 않았다는 것을 알지 못할 것입니다.

원하는 파일을 만들려면 인용하거나 탈출해야합니다.

공간을 인용하고 탈출하는 방법

전체 파일 이름을 인용하면 만지다 인용 된 텍스트를 단일 인수로 취급해야한다는 것을 알고 있습니다.

이번에는 우리가 기대하는 단일 파일을 얻습니다.

BackSlash 문자를 사용하면 동일한 결과를 얻을 수 있습니다. \ ”공간을 피하기 위해. 그들이 특수 인물, 즉 논쟁 분리기로 취급되지 않은 공간을“탈출”함으로써 그들은 평범한 오래된 공간으로 간주됩니다.

작동하지만 공간을 벗어나면 파일 이름을 입력하는 것이 느리고 오류가 발생하기 쉽습니다. 공간이있는 디렉토리 이름이 있으면 상황이 정말 추악해질 수 있습니다.

이 명령은 "dir one"이라는 디렉토리에서 "Dir Two"라는 디렉토리로 단일 텍스트 파일을 복사하고 사본을 BAK 파일로 저장합니다. 그리고 그것은 상당히 간단한 예입니다.

소스에서 공간 문제를 해결하는 방법

그들이 당신의 파일이라면, 당신은 공간을 사용하지 않기 위해 정책 결정을 내릴 수 있습니다 (또는 대량 이름 변경 ) 이와 같은 파일 이름.

물론, 그것은 강력한 솔루션이지만 여전히 추악합니다. 대시 사용과 같은 더 나은 옵션이 있습니다. - "또는 밑줄" _ ”당신의 말을 분리하기 위해.

이 두 가지 모두 문제를 회피하고 읽을 수 있습니다. 파일 이름에 추가 문자를 추가하지 않으려면 사용할 수 있습니다. 낙타 다음과 같이 파일 이름을 읽을 수 있도록합니다.

탭 확장은 공간을 쉽게 다루는 데 도움이됩니다

물론, 이름 지정 컨벤션을 채택하고이를 고수하면 자신의 파일을 다룰 때만 도움이됩니다. 다른 곳에서 오는 파일은 채택 된 명명 컨벤션을 따르지 않을 것입니다.

탭 확장을 사용하여 파일 이름을 정확하게 "작성"할 수 있습니다. 우리가 원한다고 가정 해 봅시다 삭제 우리가“Dir Two”에서 만든 BAK 파일을 사용하여 rm .

우리는“rm dir”를 입력하는 것으로 시작합니다. rm 명령과 우리는 디렉토리 이름이 "dir"로 시작한다는 것을 알고 있습니다.

"탭"키를 누르면 Bash가 현재 디렉토리에서 일치를 스캔하게됩니다.

"dir"로 시작하는 두 가지 디렉토리가 있으며, 두 경우 모두 다음 문자는 공간입니다. 그래서 Bash는 Backslash 캐릭터를 추가합니다. \ ”그리고 공간. Bash는 다음 캐릭터를 제공하기를 기다립니다. 이 디렉토리에서 가능한 두 경기를 구별하려면 다음 문자가 필요합니다.

“T Two”의 A“T”를 입력 한 다음“탭”을 다시 한 번 누릅니다.

Bash는 우리의 디렉토리 이름을 완성하고 파일 이름의 시작을 입력하기를 기다립니다.

이 디렉토리에는 하나의 파일 만 있으므로 파일 이름의 첫 번째 문자 인 "M"을 입력하면 BASH를 사용할 파일을 알리기에 충분합니다. "m"을 입력하고 "탭"을 누르면 파일 이름이 완료되고 "Enter"는 전체 명령을 실행합니다.

탭 확장을 사용하면 파일 이름을 올바르게 얻을 수 있으며 일반적으로 명령 줄에서 탐색 및 입력 속도가 빨라집니다.

관련된: 모든 운영 체제에서 더 빨리 명령을 입력하기 위해 탭 완료를 사용합니다.

Bash 스크립트의 공간이있는 파일 이름을 사용하는 방법

그것은 놀라운 일이 아닙니다 스크립트 명령 줄과 함께 파일 이름의 공백과 정확히 동일한 문제가 있습니다. 파일 이름을 변수로 전달하는 경우 변수 이름을 인용하십시오.

이 작은 스크립트는 파일 패턴 "*.txt"와 일치하는 파일의 현재 디렉토리를 확인하고이를 호출하는 변수에 저장합니다. file_list . ~을 위한 고리 각각에 대해 간단한 작업을 수행하는 데 사용됩니다.

이 텍스트를 편집기에 복사하여 "files.sh"라는 파일에 저장하십시오. 그런 다음 사용하십시오 그만큼 CHMOD 명령 실행 가능하게합니다.

이 디렉토리에 파일이 있습니다. 하나는 간단한 파일 이름이 있고 다른 두 사용은“ _ "또는 대시" - ”공간 대신. 이것이 우리가 스크립트를 실행할 때 보는 것입니다.

잘 작동하는 것 같습니다. 그러나 이름에 공백이 포함 된 파일에 대한 디렉토리의 파일을 변경해 봅시다.

각 파일 이름의 모든 단어는 마치 파일 이름 인 것처럼 처리되므로 스크립트가 실패합니다. 그러나 파일 이름의 스크립트 핸들 공백을 만들기 위해해야 할 일은 다음과 같습니다. $ 파일 내부의 변수 ~을 위한 고리.

달러 표지판“ $ ”는 인용문 안에 있습니다. 우리는 그 변화를 만들어“files.sh”스크립트 파일로 저장했습니다. 이번에는 파일 이름이 올바르게 처리됩니다.

관련된: Linux Bash 스크립트에서 라인별로 파일을 처리하는 방법

간격을 두지 만 벗겨지지 않았습니다

자신의 파일 이름에서 공간을 피하면 지금까지만 만날 수 있습니다. 공백이 포함 된 이름이있는 다른 소스에서 파일을 만나는 것은 불가피합니다. 고맙게도 명령 줄이나 스크립트에서 해당 파일을 처리 해야하는 경우 쉽게 수행 할 수있는 방법이 있습니다.


리눅스 - 가장 인기있는 기사

어떻게 사용 중괄호 확장에 리눅스의 배쉬 셸에서

리눅스 May 12, 2025

[삼] Fatmawati Achmad Zaenuri / Shutterstock. 중괄호 확장은 스크립트 및 별칭 및 Linux 명령 행에서 사용할 수있는 문자열 목록을 �..


초급 OS 6 "Odin"의 새로운 기능

리눅스 Aug 14, 2025

[삼] Elementary, Inc. 그게있다 많은 Linux 배포판 (Distros) 사람들이 Windows 또는 MacOS를위한 좋은 대체품이라고 주장하는 것은 그러�..


어떻게 리눅스에서 롤백 커널에

리눅스 Sep 30, 2025

[삼] Fatmawati Achmad Zaenuri / Shutterstock.com Linux PC가 시스템에 대한 업데이트 후에 갑자기 문제가있는 경우 리눅스 커널 업�..


개발자와 열광자를 위해 2021 년 최고의 리눅스 노트북

리눅스 Sep 27, 2025

[삼] Tomeqs / Shutterstock.com. 2021 년 Linux 노트북에서 찾는 것 거의 모든 노트북을 살 수 있습니다 Linux를 설치하�..


Linux 커널의 새로운 기능 5.14

리눅스 Sep 9, 2025

[삼] 숀 로커 사진 / shutterstock. Linux가 30 세가되면 커널 5.14가 출시되었습니다. 여기에는 아래의 후드 수정 및 사용자가 볼..


M1 Apple Silicon Mac에 Linux를 설치할 수 있습니까?

리눅스 Nov 12, 2024

[삼] [삼] 모든 사람이 Mac을 만드는 Mac을 구입하지는 않습니다. 나쁜 소식은 2021 년 11 월 현재 Apple Silicon의 네이티브 리눅스 지원이 가능하지 않�..


5 Ubuntu Linux 기능을 사용해야합니다

리눅스 Dec 6, 2024

Ubuntu Linux는 기능이 풍부하며 선별 된 사전 설치된 소프트웨어가 제공됩니다. 그래도 조금 더 깊이 파고 들으면 사용해야 할 몇 가지 기능이 있습�..


Linux Bash 스크립트에서 공개 IP를 얻는 방법

리눅스 Nov 9, 2024

컴퓨터에 원격으로 연결하려면 외부 IP 주소가 필요합니다. 수동으로 찾는 것은 쉽지만 Linux 스크립트 내에서 찾는 방법은 다음과 같습니다. �..


카테고리