<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Linux - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/korean/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Linux - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/korean/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Tue, 19 May 2026 10:02:15 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/korean/news/tag/linux/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ 리눅스 Symlink 튜토리얼 - 심볼릭 링크(Symbolic Link)를 생성하고 삭제하는 방법 ]]>
                </title>
                <description>
                    <![CDATA[ 심링크(symlink) 또는 심볼릭 링크(symbolic link)는 리눅스의 파일의 한 종류로, 컴퓨터의 다른 파일이나 폴더를 가리킵니다. 심링크는 윈도우 운영체제의 '바로가기'와 유사합니다. > 심링크는 리눅스(Linux)/유닉스(UNIX) 시스템의 링크의 한 종류인 "소프트 링크(soft link)"라고도 불리는데, 이는 "하드 링크(hard link)"의 반대 개념입니다. 소프트 링크와 하드 링크의 차이 소프트 링크는 '바로가기'와 유사하며 어떤 파일 시스템에서든 이미 생성되어 ]]>
                </description>
                <link>https://www.freecodecamp.org/korean/news/rinugseu-symlink-tyutorieol-simbolrig-ringkeu-symbolic-link-reul-saengseonghago-sagjehaneun-bangbeob/</link>
                <guid isPermaLink="false">63d7bd7d41a99b065fb5aaca</guid>
                
                    <category>
                        <![CDATA[ Linux ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Jeong Won Yoo ]]>
                </dc:creator>
                <pubDate>Wed, 01 Feb 2023 09:24:31 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/korean/news/content/images/2023/01/5f9c9b4f740569d1a4ca2b02.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>기사 원문:</strong> <a href="https://www.freecodecamp.org/news/symlink-tutorial-in-linux-how-to-create-and-remove-a-symbolic-link/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Symlink Tutorial in Linux – How to Create and Remove a Symbolic Link</a>
      </p><p>심링크(symlink) 또는 심볼릭 링크(symbolic link)는 리눅스의 파일의 한 종류로, 컴퓨터의 다른 파일이나 폴더를 가리킵니다. 심링크는 윈도우 운영체제의 '바로가기'와 유사합니다.</p><blockquote>심링크는 리눅스(Linux)/유닉스(UNIX) 시스템의 링크의 한 종류인 "소프트 링크(soft link)"라고도 불리는데, 이는 "하드 링크(hard link)"의 반대 개념입니다.</blockquote><p></p><h1 id="-">소프트 링크와 하드 링크의 차이</h1><p>소프트 링크는 '바로가기'와 유사하며 어떤 파일 시스템에서든 이미 생성되어 있는 다른 파일이나 디렉터리를 가리킬 수 있습니다.</p><p>하드 링크 역시 파일이나 폴더의 '바로가기' 역할을 하지만, 다른 파일 시스템에서는 만들어질 수 없습니다.</p><p>심링크를 생성하고 삭제하는 과정을 살펴봅시다. 깨진 링크가 무엇인지, 어떻게 이를 삭제하는지도 살펴보려고 합니다.</p><h1 id="--1">심링크를 생성하는 방법</h1><p>심링크를 생성하는 문법은 아래와 같습니다.</p><p><code>ln -s &lt;연결하고자 하는 원본 파일/폴더의 경로&gt; &lt;새로 생성하는 링크의 경로&gt;</code></p><p><code>ln</code>은 링크 명령어입니다. <code>-s</code> 옵션은 해당 링크를 소프트 링크로 만들어줍니다. <code>-s</code> 옵션은 <code>-symbolic</code>으로도 대체할 수 있습니다.</p><p>기본적으로 <code>ln</code> 명령어는 하드 링크를 생성합니다. 다음 인자(argument)는 연결하려고 하는 <code>파일이나 폴더의 경로</code>입니다. (즉, '바로가기'를 하려고 하는 파일이나 폴더를 말합니다.)</p><p>마지막 인자는 <code>링크 경로</code> 그 자체로, '바로가기'를 말합니다.</p><h1 id="--2">파일의 심링크를 생성하는 방법 - 예시 명령어</h1><p><code>ln -s /home/james/transactions.txt trans.txt</code></p><p>위 명령어를 실행하고 나면, <code>trans.txt</code>로 <code>/home/james/transactions.txt</code>에 접근 가능합니다. <code>trans.txt</code>를 수정해도 그대로 원본 파일에 반영됩니다.</p><p>위 명령어는 링크 파일인 <code>trans.txt</code>을 현재 디렉터리 내부에 생성한다는 점을 기억해 두세요. 연결된 파일을 폴더 링크 안에 생성할 수도 있습니다.</p><p><code>ln -s /home/james/transactions.txt my-stuffs/trans.txt</code></p><p>현재 디렉터리에 "my-stuffs"라는 폴더가 이미 존재해야 합니다. 그렇지 않으면 명령어는 에러를 낼 것입니다.</p><h1 id="--3">폴더의 심링크를 생성하는 방법 - 예시 명령어</h1><p>위와 유사하며, 아래와 같이 사용합니다.</p><p><code>ln -s /home/james james</code></p><p>이는 <code>/home/james</code>의 내부 콘텐츠를 포함한 심링크된 폴더인 'james'를 생성합니다. 연결된 폴더에 대한 어떤 변경 사항이든 원본 폴더에 영향을 줍니다.</p><h1 id="--4">심링크를 삭제하는 방법</h1><p>심링크를 제거하기 전에, 파일들을 괜히 손대기 전에 파일이나 폴더가 심링크인지 확인하고 싶을 것입니다.</p><p>아래 명령어로 실행해 볼 수 있습니다.</p><p><code>ls -l &lt;심링크라고 생각되는 경로&gt;</code></p><p>터미널에 이 명령어를 실행하면 파일의 속성들이 표시될 것입니다. 그 결과로 나타나는 첫 문자가 소문자 L("l")이라면 파일/폴더가 심링크라는 의미입니다.</p><p>심링크가 가리키는 파일/폴더를 가리키는 화살표(-&gt;)를 확인할 수도 있습니다.</p><p>심링크를 삭제하는 두 가지 방법이 있습니다.</p><h2 id="-unlink-">언링크(unlink)를 사용해 심링크를 삭제하는 방법</h2><p>문법은 아래와 같습니다.</p><p><code>unlink &lt;심링크 경로&gt;</code></p><p>위 과정이 성공적으로 끝나면 심링크가 삭제됩니다.</p><p>폴더 형태의 심링크라 하더라도, '/'를 넣지 마세요. 리눅스는 이것이 디렉터리라고 간주하며, <code>unlink</code>는 디렉터리를 삭제하지 못합니다.</p><h2 id="rm-">rm을 사용해 심링크를 삭제하는 방법</h2><p>위에서 본 것과 같이 심링크는 원본 파일/폴더를 가리키는 또 다른 파일/폴더입니다. 이를 관계를 지우고 싶다면, 연결된 파일을 삭제하면 됩니다.</p><p>따라서 문법은 아래와 같습니다.</p><p><code>rm &lt;심링크 경로&gt;</code></p><p>예를 들어,</p><p>rm trans.txt rm james</p><p>리눅스는 'james/'를 디렉터리로 간주해 <code>r</code>과 <code>f</code> 같은 옵션이 필요하므로 <code>rm james/</code>를 실행한다면 에러가 날 것입니다. 이런 에러를 방지하기 위해서는 심링크가 폴더의 형태라도, (<code>/</code> 없이) 폴더의 이름만 써주면 됩니다.</p><p><code>unlink</code>보다 <code>rm</code>이 좋은 이유는 마치 파일처럼 한 번에 여러 심링크를 삭제할 수 있다는 것입니다.</p><h1 id="-broken-link-">깨진 링크(Broken Link)를 찾고 삭제하는 방법</h1><p>깨진 링크는 심링크가 가리키던 파일이나 폴더의 경로가 변경되거나 삭제될 때 생깁니다.</p><p>예를 들어보자면, 'transactions.txt'가 <code>/home/james</code>에서 <code>/home/james/personal</code>로 이동할 경우 'trans.txt' 링크는 깨집니다. 파일에 접근하려고 하면 '해당 파일이나 디렉터리가 존재하지 않습니다'라는 에러를 낼 것입니다. 링크가 가지고 있는 정보가 없기 때문입니다.</p><p>깨진 링크를 발견하면, 파일을 쉽게 삭제할 수 있는데, 깨진 링크를 찾는 가장 쉬운 방법은 아래와 같습니다.</p><p><code>find /home/james -xtype l</code></p><p>이 명령어는 파일에서부터 디렉터리, 그 서브 디렉터리까지 돌면서 <code>james</code> 디렉터리의 모든 깨진 링크를 출력합니다.</p><p><code>-delete</code> 옵션을 전달하면 아래처럼 해당 파일들을 삭제합니다.</p><p><code>find /home/james -xtype l -delete</code></p><h1 id="--5">마무리</h1><p>심볼릭 링크는 리눅스와 유닉스 시스템의 흥미로운 기능입니다.</p><p>바로 접근하기에 불편한 파일 또는 폴더를 쉽게 열 수 있게 해주는 심링크를 생성할 수 있습니다. 조금만 연습하면 직관적인 수준에서 작동 원리를 이해할 수 있을뿐더러 파일 시스템을 더 효율적으로 관리할 수 있을 것입니다.</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ SCP 리눅스 명령 - 원격에서 로컬로 SSH 파일을 전송하는 방법 ]]>
                </title>
                <description>
                    <![CDATA[  > 컴퓨터나 저장 능력이 있는 어떤 전자 기기로 작업한다면, 여러 방식으로 정보나 파일을 나누고 공유하게 될 것입니다. 자주 공유되는 파일로는 오디오 파일, 이미지, 비디오, PDF나 어떤 형태의 워드 문서가 포함됩니다. 대부분의 경우 공유되는 정보는 특정 무리나 개인을 위한 사적이고 기밀인 경우가 많아 이를 보호하는 것이 필수적입니다. 모바일 휴대폰 같은 ]]>
                </description>
                <link>https://www.freecodecamp.org/korean/news/scp-rinugseu-myeongryeong-weongyeogeseo-rokeolro-ssh-paileul-jeonsonghaneun-bangbeob/</link>
                <guid isPermaLink="false">63d3a7e07a7b73070e79724f</guid>
                
                    <category>
                        <![CDATA[ Linux ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Jeong Won Yoo ]]>
                </dc:creator>
                <pubDate>Sat, 28 Jan 2023 22:48:06 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/korean/news/content/images/2023/01/uide-to-writting-a-good-readme-file--3-.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>기사 원문:</strong> <a href="https://www.freecodecamp.org/news/scp-linux-command-example-how-to-ssh-file-transfer-from-remote-to-local/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">SCP Linux Command – How to SSH File Transfer from Remote to Local</a>
      </p><h4></h4><blockquote>컴퓨터나 저장 능력이 있는 어떤 전자 기기로 작업한다면, 여러 방식으로 정보나 파일을 나누고 공유하게 될 것입니다.</blockquote><p>자주 공유되는 파일로는 오디오 파일, 이미지, 비디오, PDF나 어떤 형태의 워드 문서가 포함됩니다.</p><p>대부분의 경우 공유되는 정보는 특정 무리나 개인을 위한 사적이고 기밀인 경우가 많아 이를 보호하는 것이 필수적입니다.</p><p>모바일 휴대폰 같은 경우라면, xender, appshare 같은 앱과 심지어 블루투스의 기능으로도 파일 전송이 가능합니다. 자 이제 컴퓨터의 경우도 마찬가지입니다. 소프트웨어나 때로는 사이트가 이를 똑같이 가능하게 합니다.</p><p>리눅스 같은 운영 체제 안에서의 데이터 공유라 한다면, 정보를 공유하고자 할 때 선택할 수 있는 다양한 명령이 있습니다. 하지만, 오늘은 <strong>SCP</strong> 명령에 집중해보고자 합니다. 이 명령어를 통해 안전하고 쉽게 파일과 데이터를 공유할 수 있습니다.</p><p>오늘날 시장에선 리눅스 기술을 가지는 것이 매우 중요하며, 여러분이 시스템 관리자라면 이는 더욱더 도움이 됩니다. 시스템 관리자로서 데이터 공유는 매일 일상적인 행위가 될 텐데 이때 데이터가 안전하게 공유될 필요가 있습니다. SCP 명령을 통해 이것이 가능합니다.</p><p>시작하기 전에, 대체 SCP가 무엇인지 이해해보고 파일 전송에 쓸 수 있는 몇 가지 명령어를 배워봅시다.</p><h2 id="scp-">SCP 명령어가 뭔가요?</h2><p>SCP는 Secure Copy Protocol의 머리글자입니다. 이 명령행 유틸리티를 이용해 사용자는 주로 유닉스(unix)나 리눅스(linux) 두 위치 사이에서 파일이나 디렉터리를 안전하게 복사할 수 있습니다.</p><p>이 프로토콜은 악의를 가진 어떤 이의 민감성 정보 취득을 방지하기 위해 파일 전송의 암호화를 보장합니다.</p><p>간단하게 말해서 SCP가 <code>cp</code> <em>(copy)</em> 명령을 위한 더 안전한 선택지라는 것입니다.</p><p>SCP가 SSH (Secure Shell) 연결을 통한 암호화를 이용한다는 것, 그래서 수상한 공격으로부터 전송 중인 데이터가 보호된다는 점이 중요하단 것을 알아두세요.</p><h2 id="scp--1">SCP 문법</h2><p>터미널에서 쓰이는 다른 명령어처럼, SCP도 성공적으로 실행되기 위한 일종의 형식이 있습니다. 이 문법을 이해하면 더 쉽게 명령어를 작성할 수 있게 됩니다.</p><pre><code class="language-bash">scp [OPTIONS] [[user@]src_host:]fil1 [[user@]dest_host:]file2
</code></pre><ul><li><code>scp</code> - 명령을 초기화하고 시큐어 셸이 준비되도록 합니다.</li><li><code>OPTIONS</code> - 어떻게 쓰이는지에 따라 다른 권한을 부여합니다. 가장 많이 쓰이는 옵션은 아래와 같습니다.</li><li><strong>P</strong>(대문자) - 원격 호스트와 연결하기 위해 포트를 특정합니다.</li><li><strong>p</strong>(소문자) - 수정과 열람의 편의성을 위해 타임 스탬프를 보존합니다.</li><li><strong>r</strong> - 디렉터리 전체를 재귀적으로 복사합니다.</li><li><strong>q</strong> - 진행 메시지를 표시하지 않고 조용히 파일을 복사합니다. 콰이어트 모드라고도 합니다.</li><li><strong>C</strong> - 전송 중 데이터 압축을 위한 옵션입니다. OPTIONS에 관해서 더 알아보고 싶다면 <a href="https://linux.die.net/man/1/scp">scp 옵션들</a>을 읽어보세요.</li><li><code>src_host</code> - 파일이 호스트 되는 곳입니다. 소스(source)는 파일의 위치에 따라 클라이언트나 서버 중 하나가 될 수 있습니다.</li><li><code>dest_host</code> - 파일이 복사되어 가는 곳입니다.</li></ul><p>파일을 전송하려면, 컴퓨터가 한 대 이상 있어야 합니다. 아래의 경우에서 SCP 명령어를 사용할 수 있습니다.</p><ul><li>같은 컴퓨터 내에서 파일 복사하기</li><li>로컬 호스트에서 원격 호스트로 또는 그 반대의 경우에서 파일 복사하기</li><li>서로 다른 두 원격 서버 사이에서 파일 복사하기</li></ul><p>이쯤에서, SCP 명령어를 사용하기 전 필요한 몇 가지를 짚고 가야겠습니다.</p><ul><li>클라이언트와 서버 컴퓨터에 모두에 SSH가 설치되어 있어야 합니다.</li><li>클라이언트와 서버 컴퓨터에 모두 Root 권한 접근이 가능해야 합니다.</li></ul><p>이 두 가지가 준비되었다면, 명령어를 확인하러 가봅시다.</p><h1 id="-scp-">대표적인 SCP 명령어</h1><h2 id="-">로컬 호스트에서 원격 서버로 파일 복제하기</h2><p>파일 복사 시에 파일 및 데이터를 로컬 저장소에서 원격 서버로 전송할 수 있다는 것은 매우 중요합니다. 이것이 가능해지려면 SCP 명령어를 사용할 때 몇 가지를 명시해주어야 합니다.</p><p>원천(source)으로서의 파일 경로와 복제되어 가는 원격 호스트의 경로를 명시해야 합니다.</p><p><code>test.txt</code>라는 파일을 원격 서버로 복제하는 상황을 생각해봅시다. 명령어는 아래와 같을 것입니다.</p><p><code>scp test.txt userbravo@destination:/location2</code></p><p>복제하고자 하는 파일 수에는 제한이 없습니다. 데스크톱 안에 web이라는 폴더 속 <code>.php</code> 확장자를 가진 파일이 있고, 이를 원격 서버의 홈 디렉터리로 복사하고자 한다고 해봅시다. 명령어는 아래와 같을 것입니다.</p><p><code>scp *.php userbravo@destinatino_host:/~/</code></p><p><strong>*.php</strong> - 현재 명시된 폴더 내 .php 확장자를 가진 모든 파일을 복사합니다.<br><strong>/~/</strong> - 이를 홈 디렉터리로 복사한다는 의미입니다.</p><p>이번에는 port 옵션 중 하나를 사용해 test.txt 파일을 복사해서 원격 서버에 다른 이름으로 저장하고자 한다면, 명령어는 아래와 같을 것입니다.</p><p><code>scp -P 8080 test.txt userbravo@destination_host:/user/home/test2.txt</code></p><p>방금 예시에서는 port 8080을 이용해 로컬의 test.txt 파일을 원격으로 전송해 test2.txt로 저장해보았습니다.</p><h2 id="--1">원격에서 로컬로 파일 복사하기</h2><p>예시를 활용하면 더 이해하기 쉽습니다. 원격 시스템에서 파일을 복사해오는 상황이라고 생각해봅시다. 파일을 복사하려면 SCP로 시작해 원격의 유저이름@IP 주소와 파일의 경로를 나열합니다.</p><p>경로를 지정하지 않으면, 사용자의 홈 디렉터리를 기본값으로 간주하며, 파일이 로컬로 저장되는 경로를 따릅니다.</p><h3 id="--2">문법</h3><p><code>scp file &lt;원격의_유저이름&gt;@&lt;IP_또는_호스트&gt;:&lt;파일의_경로&gt; &lt;로컬_파일_경로&gt;</code></p><p>*192.168.1.100.*이라는 주소의 원격 기기에서 <em>linuxcheatsheet</em>이라는 이름의 파일을 복사한다고 가정해봅시다.</p><p><em>linuxcheatsheet</em> 파일은 kali라는 사용자의 홈 디렉터리에 저장되어 있으며, 이 사용자를 인증해야 합니다. 그러니 콜론 뒤에, 이미 홈 디렉터리라는 기본값으로 설정이 되어 있으니 별도의 경로를 설정하지는 않아도 되며, 파일 이름("linuxcheatsheet")만 작성해줍니다. 이제 파일을 저장하기 위한 로컬 파일 경로로써 점(.)을 타이핑해 현재 디렉터리를 표시해줍니다.</p><p><code>scp linuxcheatsheet lary@192.168.1.100: .</code></p><h2 id="--3">원격 호스트로부터 다른 원격 호스트로 파일을 복사하기</h2><p>파일 전송에서 SCP를 사용하는 것의 장점은 로컬 컴퓨터 간의 연결뿐만 아니라 원격 서버 간의 연결도 가능하다는 것입니다.</p><p>test.txt라는 파일을 다른 원격 서버로 복사하려고 한다면, 명령어는 아래와 같을 것입니다.</p><p><code>scp user1@host1.com:/files/test.txt user2@user2.com:/files</code></p><p>이 명령어가 하는 일은 user1의 files 폴더에서 test.txt를 복사하고, <em>host2.com</em> 위에서 실행되는 user2에 files 폴더로 해당 복사본을 생성하는 것입니다.</p><h2 id="--4">파일 여러 개를 복사하기</h2><p>여러 파일을 복사할 때는 원본 경로로써 파일 이름을 지정해주기만 하면 됩니다. 예를 들어 봅시다.</p><h3 id="--5">문법</h3><p><code>scp file1 file2 ... user@&lt;사용자의_IP_주소&gt;: 도착지</code></p><p>files 1, 2, 3, 4를 복사한다고 해봅시다. 명령어는 아래와 같을 것입니다.</p><p><code>scp file1.txt file2.txt file3.txt file4.txt user1@host1.com:/home/user/Desktop</code></p><h1 id="--6">핵심 포인트</h1><ul><li>파일을 복사하려면, 원본 파일의 읽기 권한이, 목표 시스템에는 쓰기 권한이 있어야 합니다.</li><li>SCP 명령어는 안전한 데이터 전송을 위해 SSH에 의존하기 때문에 원격 시스템에 인증하기 위해 암호를 설정해야 합니다.</li><li>같은 이름과 위치에서 파일을 복사할 때는 SCP 명령어에서 별도로 경고하지 않고 덮어쓰기 할 수 있으므로 주의해야 합니다.</li><li>로컬과 원격 위치를 구분할 때는 쌍점(:)을 사용합니다.</li></ul><h1 id="--7">마무리</h1><p>기술지원이든, 시스템 관리자든, 혹은 저처럼 리눅스를 사용하며 성장하고 있거나 배우고 싶은 개발자라면 언젠가는 파일 전송이 필요한 때가 올 것입니다. 이 SCP 명령어를 알고 있으면 도움이 될 것입니다.</p><p>이 글에서는, SCP를 사용하려고 할 때 만날 수 있는 가장 흔한 경우를 다뤄보았는데, 뭔가 새로운 것을 얻어가셨기를 바랍니다.</p><p>즐거운 코딩 되시길 ❤</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ 리눅스 LS 명령어 - 디렉터리 내부에서 옵션 플래그와 함께 파일을 열거하는 방법 ]]>
                </title>
                <description>
                    <![CDATA[  1970년 만들어진 이후 유닉스는 많은 운영 체제 시스템의 토대가 되었습니다. 대다수의 운영 체제 시스템은 실패했고, 그 외의 것들은 성공했죠. 리눅스는 가장 유명한 유닉스 기반 운영 체제 시스템입니다. 오픈 소스로, 다양한 산업군에 걸쳐 전 세계적으로 쓰이고 있습니다. 리눅스 운영 체제의 가장 근사한 점은 사용자가 셸(Shell)을 통해 컴퓨터와 상호작용할 수 있는 ]]>
                </description>
                <link>https://www.freecodecamp.org/korean/news/rinugseu-ls-myeongryeongeo-diregteori-naebueseo-obsyeon-peulraegeuwa-hamgge-paileul-yeolgeohaneun-bangbeob-2/</link>
                <guid isPermaLink="false">634fea9571cbd405f6d6a6de</guid>
                
                    <category>
                        <![CDATA[ Linux ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Jeong Won Yoo ]]>
                </dc:creator>
                <pubDate>Sun, 23 Oct 2022 13:07:41 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/korean/news/content/images/2022/10/article-banner-7.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>기사 원문:</strong> <a href="https://www.freecodecamp.org/news/the-linux-ls-command-how-to-list-files-in-a-directory-with-options/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">The Linux LS Command – How to List Files in a Directory + Option Flags</a>
      </p><p></p><p>1970년 만들어진 이후 유닉스는 많은 운영 체제 시스템의 토대가 되었습니다. 대다수의 운영 체제 시스템은 실패했고, 그 외의 것들은 성공했죠.</p><p>리눅스는 가장 유명한 유닉스 기반 운영 체제 시스템입니다. 오픈 소스로, 다양한 산업군에 걸쳐 전 세계적으로 쓰이고 있습니다.</p><p>리눅스 운영 체제의 가장 근사한 점은 사용자가 셸(Shell)을 통해 컴퓨터와 상호작용할 수 있는 명령 줄 인터페이스(CLI)를 제공한다는 점입니다. 리눅스 셸은, REPL(<strong>R</strong>ead, <strong>E</strong>valuate, <strong>P</strong>rint, <strong>L</strong>oop) 환경으로, 사용자가 명령을 입력하면 셸이 이를 실행 후 결과를 반환합니다.</p><p><code>ls</code> 명령어는 수많은 리눅스 명령어 중 하나인데, 사용자의 CLI에서 파일이나 디렉터리 목록을 보여줍니다.</p><p>이 기사에서는, <code>ls</code> 명령어와 일상적으로 흔히 필요하게 될 몇 가지 중요한 플래그에 대해 더 깊이 알아보고자 합니다.</p><h1 id="-">선행 조건</h1><ul><li>디렉터리와 파일이 있는 컴퓨터</li><li>리눅스 배포판이 하나 이상 설치되어야 함</li><li>CLI를 다루는 기초 수준의 지식</li><li>얼굴에 미소를 띠우기 :)</li></ul><h1 id="-ls-">리눅스 ls 명령어</h1><p>리눅스 <code>ls</code> 명령어는 리눅스 또는 다른 유닉스 기반 운영 체제 시스템 안에서 파일이나 디렉터리를 목록으로 보여주기 위해 쓰입니다.</p><p>GUI로 제공되는 <em>파일 탐색기</em>나 <em>파인더(Finder)</em>처럼, <code>ls</code> 명령어는 현재 디렉터리를 기본으로 모든 파일과 디렉터리를 나열해 보여주거나 명령 줄로 파일과 디렉터리와 더 상호작용하도록 해줍니다.</p><p>터미널을 열어서 <code>ls</code>를 입력해 실제로 어떻게 동작하는지 살펴봅시다.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/08/Screenshot-2020-08-20-at-9.40.29-PM.png" class="kg-image" alt="ls 명령어를 입력한 후 디렉터리와 파일 목록이 반환된 터미널 창" width="600" height="400" loading="lazy"></figure><h2 id="--1">옵션과 함께 디렉터리 내 파일 나열하기</h2><p><code>ls</code> 명령어는 또한 몇 가지 플래그(옵션이라고도 합니다)와 함께 쓰이는데, 일종의 부가 정보로 어떻게 파일과 디렉터리가 터미널에서 보일지 바꿔줍니다.</p><p>즉, 플래그는 <code>ls</code> 명령어가 동작하는 방식을 바꾼다고 할 수 있습니다.</p><pre><code class="language-shell">ls [flags] [directory]
</code></pre><blockquote>추신: 이 문서 전체에 걸쳐 <strong>내용</strong>이라는 단어는 나열된 <strong>파일과 디렉터리</strong>를 일컬으며, 실제 파일/디렉터리 내부의 내용을 말하지는 않습니다.</blockquote><h3 id="--2">현재 작업 중인 디렉터리의 파일을 목록화하기</h3><p>현재 작업 디렉터리의 내용을 목록으로 보려면 <code>ls</code> 명령어를 입력해보세요</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/08/Screenshot-2020-08-20-at-9.40.29-PM.png" class="kg-image" alt="ls 명령어를 입력한 후 디렉터리와 파일 목록이 반환된 터미널 창" width="600" height="400" loading="lazy"></figure><h3 id="--3">다른 디렉터리의 파일을 목록화하기</h3><p><code>ls [디렉터리 경로]</code> 명령어는 해당 디렉터리의 내용을 나열할 때 써보세요<br></p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/08/Screenshot-2020-08-20-at-10.32.52-PM.png" class="kg-image" alt="ls Desktop 명령어를 입력한 후 디렉터리와 파일 목록이 반환된 터미널 창" width="600" height="400" loading="lazy"></figure><h3 id="--4">루트 디렉터리의 파일을 목록화하기</h3><p>루트 디렉터리의 내용을 보려면 <code>ls /</code> 명령어를 입력해보세요</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/08/Screenshot-2020-08-20-at-10.46.10-PM.png" class="kg-image" alt="ls / 명령어를 입력한 후 디렉터리와 파일 목록이 반환된 터미널 창" width="600" height="400" loading="lazy"></figure><h3 id="--5">부모 디렉터리의 파일을 목록화하기</h3><p><code>ls ..</code> 명령어를 입력하면 한 단계 위의 부모 디렉터리의 내용을 목록화해서 보여줍니다. <code>ls ../..</code> 명령어를 활용하면 두 단계 위의 내용이 보입니다</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/08/Screenshot-2020-08-20-at-10.48.22-PM.png" class="kg-image" alt="루트 디렉터리에서 cd Downloads 명령을 실행하고 Downloads 디렉터리에서 ls .. 명령어를 실행한 후 디렉터리와 파일 목록이 반환된 터미널 창" width="600" height="400" loading="lazy"></figure><h3 id="-home-user-">사용자의 홈 디렉터리(/home/user)의 파일을 목록화하기</h3><p><code>ls ~</code> 명령어를 사용하면 사용자의 홈 디렉터리의 내용이 보입니다</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/08/Screenshot-2020-08-20-at-10.51.19-PM.png" class="kg-image" alt="ls ~ 명령어 실행 후 디렉터리와 파일 목록이 반환된 터미널 창" width="600" height="400" loading="lazy"></figure><h3 id="--6">디렉터리만 보여주기</h3><p><code>ls -d */</code> 명령어는 오직 디렉터리들만 목록 결과로 보여줍니다</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/08/Screenshot-2020-08-21-at-12.53.05-PM.png" class="kg-image" alt="ls -d */ 명령어 실행 후 디렉터리 목록만 반환된 터미널 창" width="600" height="400" loading="lazy"></figure><h3 id="--7">파일과 서브 디렉터리를 목록화해서 보여주기</h3><p><code>ls *</code> 명령어는 디렉터리와 해당 디렉터리의 서브 디렉터리를 목록화해서 보여줍니다</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/08/Screenshot-2020-08-21-at-1.07.54-PM.png" class="kg-image" alt="ls * 명령어를 실행 후 디렉터리와 그의 서브 디렉터리가 함께 반환된 터미널 창" width="600" height="400" loading="lazy"></figure><h3 id="--8">재귀적으로 파일을 목록화하기</h3><p><code>ls -R</code> 명령어를 입력하면, 파일과 디렉터리 및 그의 서브 디렉터리들의 마지막 파일을 만날 때까지 쭉 타고 내려가 모두 목록으로 보여줍니다<br></p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/09/Screenshot-2020-09-01-at-9.04.56-AM.png" class="kg-image" alt="ls -R 명령어를 실행 후 파일, 디렉터리, 서브 디렉터리가 모두 재귀적으로 반환된 터미널 창" width="600" height="400" loading="lazy"></figure><blockquote>파일이 너무 많다면, 각 디렉터리의 파일 하나하나까지 모두 출력되기 때문에 작업이 완료되기까지 시간이 상당히 소요될 것입니다. 대신 한 디렉터리를 특정해 이 명령어를 실행할 수도 있습니다: <code>ls Downloads -R</code></blockquote><h3 id="--9">크기와 함께 파일을 목록화하기</h3><p><code>ls -s</code>(<strong>s</strong>는 소문자입니다) 명령어를 입력하면 파일 또는 디렉터리가 크기와 함께 목록화되어 보입니다:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/08/Screenshot-2020-08-21-at-12.30.19-PM.png" class="kg-image" alt="ls -s 명령어를 입력한 후 파일, 디렉터리 그리고 크기가 반환된 터미널 창" width="600" height="400" loading="lazy"></figure><h3 id="--10">긴 형식으로 파일을 목록화하기</h3><p><code>ls -l</code> 명령어를 입력하면 아래의 열을 포함한 표 형태로 디렉터리 내용을 목록화해 보여줍니다</p><ul><li>내용 권한</li><li>내용에 대한 링크의 개수</li><li>내용의 소유자</li><li>내용의 그룹 소유자</li><li>내용의 바이트 단위</li><li>내용을 마지막으로 수정한 날짜 및 시간</li><li>파일 또는 디렉터리의 이름</li></ul><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/08/Screenshot-2020-08-20-at-10.52.37-PM.png" class="kg-image" alt="ls -l 명령어를 입력한 후 표 형태로 반환된 터미널 창" width="600" height="400" loading="lazy"></figure><h3 id="--11">읽을 수 있는 파일로 표현된 긴 형식의 파일 목록화하기</h3><p><code>ls -lh</code> 명령어를 입력하면, 위와 같은 표 형태로 파일과 디렉터리를 목록화해 보여주지만, 각 파일/디렉터리의 크기를 표현하는 열도 추가되었습니다<br></p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/08/Screenshot-2020-08-21-at-12.14.33-PM.png" class="kg-image" alt="ls -lh 명령어를 입력한 후 표 형태로 반환된 터미널 창" width="600" height="400" loading="lazy"></figure><p>파일이나 디렉터리의 가 1,024바이트보다 클 경우 바이트(B), 메가바이트(MB), 기가바이트(GB) 또는 테라바이트(TB)로 표현됩니다.</p><h3 id="--12">숨김 파일을 포함해 파일을 목록화하기</h3><p><code>ls -a</code> 명령어를 입력하면, 숨겨진 파일 또는 디렉터리를 포함해 파일 또는 디렉터리를 목록화해 보여줍니다. 리눅스에서는 <code>.</code> 로 시작하는 이름은 숨김 파일로 간주합니다.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/08/Screenshot-2020-08-21-at-11.12.26-AM.png" class="kg-image" alt="ls -a 명령어를 입력한 후 숨김 파일까지 반환된 터미널 창" width="600" height="400" loading="lazy"></figure><h3 id="--13">숨김 파일을 포함해 긴 형식으로 파일을 목록화하기</h3><p><code>ls -l -a</code>, <code>ls -a -l</code>, <code>ls -la</code>, <code>ls -al</code> 명령어는 숨김 파일 또는 디렉터리를 포함한 부가 정보를 표 형태로 목록화해 보여줍니다<br></p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/08/Screenshot-2020-08-21-at-12.17.01-PM.png" class="kg-image" alt="ls -la 명령어를 입력한 후 표 형태로 반환된 터미널 창" width="600" height="400" loading="lazy"></figure><h3 id="--14">날짜와 시간으로 분류해 파일을 목록화하기</h3><p><code>ls -t</code> 명령어를 입력하면 파일 또는 디렉터리를 마지막으로 수정한 날짜에 따라 내림차순으로 (숫자가 작은 것에서 큰 순으로) 분류해 목록으로 보여줍니다.</p><p><code>-r</code> 플래그를 넣어 <code>ls -tr</code>처럼 분류 순서를 반대로 할 수도 있습니다</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/08/Screenshot-2020-08-21-at-12.20.09-PM.png" class="kg-image" alt="ls -t과 ls-tr 명령어를 입력한 후 파일과 디렉터리를 반환한 터미널 창" width="600" height="400" loading="lazy"></figure><h3 id="--15">파일 크기로 분류해 파일을 목록화하기</h3><p><code>ls -S</code>(<strong>S</strong>는 대문자입니다) 명령어를 입력하면 파일 또는 디렉터리를 크기에 따라 내림차순으로 (숫자가 적은 것에서 큰 순으로) 분류해 목록으로 보여줍니다.</p><p><code>-r</code> 플래그를 넣어 <code>ls -Sr</code>처럼 분류 순서를 반대로 할 수도 있습니다<br></p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/08/Screenshot-2020-08-21-at-12.20.38-PM.png" class="kg-image" alt="ls -S와 ls -Sr 명령어를 입력한 후 파일과 디렉터리를 반환한 터미널 창" width="600" height="400" loading="lazy"></figure><h3 id="--16">파일을 목록화한 결과를 파일로 생성하기</h3><p><code>ls &gt; output.txt</code> 명령어는 이전 명령어에 대한 결과를 <code>output.txt</code>에 삽입해줍니다. <code>-la</code> 같이 위에서 논의한 플래그는 전부 사용할 수 있습니다 - 여기서 중요한 점은 결과가 한 파일로 출력되지만, 명령 줄에는 기록되지 않는다는 것입니다.</p><p>원하는 대로 파일을 활용해보거나 <code>cat output.txt</code>로 파일 내용을 출력할 수도 있습니다.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/09/Screenshot-2020-09-01-at-9.12.59-AM.png" class="kg-image" alt="ls > output.txt, cat output.txt 명령어를 입력한 후 파일과 디렉터리를 반환한 터미널 창" width="600" height="400" loading="lazy"></figure><h1 id="--17">결론</h1><p>필요에 따라 파일과 디렉터리를 출력해보기 위해 탐구해볼 만한 다른 수많은 명령어와 조합이 존재합니다. 기억해야 할 것은 한 번에 여러 명령어를 합칠 수 있는 능력입니다.</p><p>긴 형식으로 파일을 나열하되, 숨김 파일을 포함하고, 파일 크기에 따라 분류하고 싶다고 생각해봅시다. 명령어는 <code>ls -alS</code>로, <code>ls -l</code>, <code>ls -a</code> 그리고 <code>ls -S</code>의 조합입니다.</p><p>만일 어떤 명령어도 기억이 안 나거나 뭘 해야 할지 확실치 않다면, <code>ls --help</code>나 <code>man ls</code>를 실행해 <code>ls</code> 명령어에 대해 가능한 모든 옵션에 대한 설명서를 볼 수 있습니다.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/09/Screenshot-2020-09-01-at-9.57.37-AM.png" class="kg-image" alt="ls --help나 man ls 명령어를 실행한 터미널 창" width="600" height="400" loading="lazy"></figure><p>읽어주셔서 감사합니다!</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
