<?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[ command - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ エキスパートの手によるプログラミングチュートリアル記事を幅広く掲載。ウェブ開発、データサイエンス、DevOps、セキュリティ、開発者としてのキャリアなどについて学びましょう。 ]]>
        </description>
        <link>https://www.freecodecamp.org/japanese/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ command - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/japanese/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sun, 24 May 2026 19:36:50 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/japanese/news/tag/command/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ sudo apt-get update と upgrade の違いとは？ ]]>
                </title>
                <description>
                    <![CDATA[ sudo apt-get update と sudo apt-get upgrade は、Debian や Debian ベースのディストリビューションでパッケージを最新の状態に保つために利用できるコマンドです。 これらのコマンドは Linux 管理者や DevOps に携わる人にとってはよく使うものですが、コマンドラインを頻繁に使用しない人でも知っておくと役に立ちます。 この記事では、これらのコマンドの動作や使用方法、よくある質問などについて解説します。 sudo apt-get update と sudo apt-get upgrade の違いは何ですか？ 主な違いは、sudo apt-get update  はディストリビューションのソフトウェアリポジトリやあらかじめ設定されたサードパーティリポジトリから、最新バージョンのパッケージの一覧を取得することです。つまり、それぞれのパッケージや依存関係の最新バージョンを確認するだけで、更新内容を実際にダウンロードしたりインストールすることはありません。 一方、sudo apt-get upgrade は、システム上の古くなったパ ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/sudo-apt-get-update-vs-upgrade-what-is-the-difference/</link>
                <guid isPermaLink="false">67864ebfd7aa1e04405877c0</guid>
                
                    <category>
                        <![CDATA[ Bash ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Linux ]]>
                    </category>
                
                    <category>
                        <![CDATA[ command ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Ubuntu ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ YUUSUKE OKAMOTO ]]>
                </dc:creator>
                <pubDate>Fri, 17 Jan 2025 23:04:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2025/01/gabriel-heinzer-4Mw7nkQDByk-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/sudo-apt-get-update-vs-upgrade-what-is-the-difference/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">sudo apt-get update vs upgrade – What is the Difference?</a>
      </p><p><code>sudo apt-get update</code> と <code>sudo apt-get upgrade</code> は、Debian や Debian ベースのディストリビューションでパッケージを最新の状態に保つために利用できるコマンドです。</p><p>これらのコマンドは Linux 管理者や DevOps に携わる人にとってはよく使うものですが、コマンドラインを頻繁に使用しない人でも知っておくと役に立ちます。</p><p>この記事では、これらのコマンドの動作や使用方法、よくある質問などについて解説します。</p><h2 id="sudo-apt-get-update-sudo-apt-get-upgrade-"><code>sudo apt-get update</code> と <code>sudo apt-get upgrade</code> の違いは何ですか？</h2><p>主な違いは、<code>sudo apt-get update</code> はディストリビューションのソフトウェアリポジトリやあらかじめ設定されたサードパーティリポジトリから、最新バージョンのパッケージの一覧を取得することです。つまり、それぞれのパッケージや依存関係の最新バージョンを確認するだけで、更新内容を実際にダウンロードしたりインストールすることはありません。</p><p>一方、<code>sudo apt-get upgrade</code> は、システム上の古くなったパッケージや依存関係の更新バージョンをダウンロードおよびインストールします。しかし、<code>sudo apt-get upgrade</code> を実行しても、古くなったパッケージが即座にアップグレードされるわけではありません。変更内容を確認してから、アップグレードを実行するかどうか判断できます。</p><h2 id="sudo-apt-get-update-"><code>sudo apt-get update</code> コマンドの使い方</h2><p>Debian ベースの Linux ディストリビューション (Debian、Ubuntu、Linux Mint、Kali Linux、Raspberry Pi OS など) で、ターミナルウィンドウを開きます。</p><p>ディストリビューションおよびターミナルの開き方によって、名称は異なる場合があります。例えば、Ubuntu や Linux Mint では、デフォルトで Gnome Terminal が利用されますが、アプリケーションメニューでは単に「ターミナル」として表示されることもあります。</p><p>ターミナル上のコマンドラインで <code>sudo apt-get update</code> と入力し、管理者パスワードを入力して、Enter キーを押します。</p><p>もし更新する項目がある場合、次のような出力が表示されます:</p><pre><code>kris@pihole:~ $ sudo apt-get update
Hit:1 https://ftp.harukasan.org/raspbian/raspbian bullseye InRelease
Get:2 https://download.docker.com/linux/raspbian bullseye InRelease [26.7 kB]
Get:3 http://archive.raspberrypi.org/debian bullseye InRelease [23.7 kB]       
Get:4 http://packages.azlux.fr/debian buster InRelease [3,989 B]               
Get:5 http://archive.raspberrypi.org/debian bullseye/main armhf Packages [282 kB]
Get:6 http://packages.azlux.fr/debian buster/main armhf Packages [3,418 B]
Fetched 340 kB in 4s (94.8 kB/s)     
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
3 packages can be upgraded. Run 'apt list --upgradable' to see them.
</code></pre><p>アップグレード可能なパッケージを確認したい場合は、<code>apt list --upgradable</code> を実行します:</p><pre><code>kris@pihole:~ $ apt list --upgradable
Listing... Done
libcamera0/stable 0~git20220426+18e68a9b-1 armhf [upgradable from: 0~git20220303+e68e0f1e-1]
raspi-config/stable 20220425 all [upgradable from: 20220419]
rpi-eeprom/stable 13.13-1 armhf [upgradable from: 13.12-1]
</code></pre><p>しかし、ディストリビューションのソフトウェアリポジトリに新しいバージョンのパッケージや依存関係がない場合、次のような出力が表示されます:</p><pre><code>kris@pihole:~ $ sudo apt-get update
Get:1 https://download.docker.com/linux/raspbian bullseye InRelease [26.7 kB]
Hit:2 https://ftp.harukasan.org/raspbian/raspbian bullseye InRelease           
Hit:3 http://packages.azlux.fr/debian buster InRelease                         
Hit:4 http://archive.raspberrypi.org/debian bullseye InRelease
Fetched 26.7 kB in 3s (8,789 B/s)
Reading package lists... Done
</code></pre><p>ここには、アップグレード可能なパッケージや <code>apt list --upgradable</code> を実行するよう指示するメッセージがありません。</p><p>ただし、メッセージがないことは、システム上に更新が必要なソフトウェアがないことを意味するわけではなく、単に既に最新のパッケージリストを取得済みということです。<code>sudo apt-get update</code> を何度も実行した可能性もあります。</p><p>いつでも <code>apt list --upgradable</code> を再度実行して、アップグレード可能なものがあるかどうか確認できます。</p><p>また、より新しい <code>sudo apt update</code> コマンドを使用することもできます。このコマンドは常にアップグレード可能なパッケージの数を示すか、すべてが最新状態であるというメッセージを表示します。</p><p><code>apt</code> と <code>apt-get</code> の違いに関する詳細な情報は、<a href="#what-s-the-difference-between-apt-get-and-apt">以下のセクションで確認できます</a>。</p><h2 id="sudo-apt-get-upgrade-"><code>sudo apt-get upgrade</code> コマンドの使い方</h2><p><code>sudo apt-get update</code> コマンドを実行した後、同じターミナルウィンドウで、<code>sudo apt-get upgrade</code> と入力し、必要に応じてパスワードを入力して Enter を押します。</p><p>すると、次のような出力が表示されます:</p><pre><code>kris@pihole:~ $ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  libcamera0 raspi-config rpi-eeprom
3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,616 kB of archives.
After this operation, 1,596 kB of additional disk space will be used.
Do you want to continue? [Y/n]
</code></pre><p>出力の最後に、アップグレードされるパッケージが表示されます。</p><pre><code>The following packages will be upgraded:
  libcamera0 raspi-config rpi-eeprom
3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
</code></pre><p>取得する必要があるデータ量と、アップグレードされたパッケージがインストール後に使用するディスク容量が表示されます。</p><pre><code>Need to get 2,616 kB of archives.
After this operation, 1,596 kB of additional disk space will be used.
</code></pre><p>最後に、アップグレードを続けるかどうかの確認メッセージが表示されます:</p><pre><code>Do you want to continue? [Y/n]
</code></pre><p>アップグレードを続行するには、<code>y</code>、<code>Y</code>、または <code>yes</code> を入力し、終了する場合は、<code>n</code>、<code>N</code>、または <code>no</code> を入力します。</p><p>アップグレードを終了することを選んだ場合、以下のような出力が表示されます:</p><pre><code>kris@pihole:~ $ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  libcamera0 raspi-config rpi-eeprom
3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,616 kB of archives.
After this operation, 1,596 kB of additional disk space will be used.
Do you want to continue? [Y/n] n
Abort.
</code></pre><p>アップグレードを続行することを選んだ場合の出力例:</p><pre><code>kris@pihole:~ $ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  libcamera0 raspi-config rpi-eeprom
3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,616 kB of archives.
After this operation, 1,596 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.raspberrypi.org/debian bullseye/main armhf libcamera0 armhf 0~git20220426+18e68a9b-1 [548 kB]
Get:2 http://archive.raspberrypi.org/debian bullseye/main armhf raspi-config all 20220425 [30.3 kB]
Get:3 http://archive.raspberrypi.org/debian bullseye/main armhf rpi-eeprom armhf 13.13-1 [2,037 kB]
Fetched 2,616 kB in 3s (1,019 kB/s)   
Reading changelogs... Done
(Reading database ... 43496 files and directories currently installed.)
Preparing to unpack .../libcamera0_0~git20220426+18e68a9b-1_armhf.deb ...
Unpacking libcamera0:armhf (0~git20220426+18e68a9b-1) over (0~git20220303+e68e0f1e-1) ...
Preparing to unpack .../raspi-config_20220425_all.deb ...
Unpacking raspi-config (20220425) over (20220419) ...
Preparing to unpack .../rpi-eeprom_13.13-1_armhf.deb ...
Unpacking rpi-eeprom (13.13-1) over (13.12-1) ...
Setting up rpi-eeprom (13.13-1) ...
Setting up libcamera0:armhf (0~git20220426+18e68a9b-1) ...
Setting up raspi-config (20220425) ...
Processing triggers for man-db (2.9.4-2) ...
Processing triggers for libc-bin (2.31-13+rpt2+rpi1+deb11u2) ...
</code></pre><p>処理が完了すると、全ての古いパッケージと依存関係が更新されます。</p><p><code>sudo apt-get upgrade</code> コマンドの重要な点は、何も削除せずにアップグレードのみ行うことです。</p><p>例えば、アップグレードに新しい依存関係が必要な場合、<code>upgrade</code> コマンドは、新しい依存関係をダウンロードおよびインストールしますが、古い依存関係を削除することはありません。古い依存関係を削除するには、別のコマンドが必要です。新しいカーネルバージョンにアップグレードする際によく見られます。</p><p>アップグレード後に次のようなメッセージが表示された場合:</p><pre><code>The following packages were automatically installed and are no longer required:
  g++-8 gir1.2-mutter-4 libapache2-mod-php7.2 libcrystalhd3
Use 'sudo apt autoremove' to remove them.
</code></pre><p>提案通りに、<code>sudo apt autoremove</code> で不要なパッケージを削除することができます。</p><h2 id="sudo-apt-get-upgrade--1"><code>sudo apt-get upgrade</code> コマンドで追加のオプションを使用する方法</h2><p><code>sudo apt-get upgrade</code> コマンドには多くの追加のオプションまたはパラメータがありますが、その中でも注目すべきは <code>--dry-run</code> と <code>--yes</code> です。</p><h3 id="-dry-run-"><code>--dry-run</code> オプションの使用方法:</h3><p><code>--dry-run</code> (もしくは <code>-s</code> または <code>--simulate</code>) オプションは、アップグレード処理中に何が起こるかをシュミレーションしますが、システム上で何も変更しません:</p><pre><code>kris@pihole:~ $ sudo apt-get upgrade --dry-run
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  libcamera0 raspi-config rpi-eeprom
3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Inst libcamera0 [0~git20220303+e68e0f1e-1] (0~git20220426+18e68a9b-1 Raspberry Pi Foundation:stable [armhf])
Inst raspi-config [20220331] (20220425 Raspberry Pi Foundation:stable [all])
Inst rpi-eeprom [13.12-1] (13.13-1 Raspberry Pi Foundation:stable [armhf])
Conf libcamera0 (0~git20220426+18e68a9b-1 Raspberry Pi Foundation:stable [armhf])
Conf raspi-config (20220425 Raspberry Pi Foundation:stable [all])
Conf rpi-eeprom (13.13-1 Raspberry Pi Foundation:stable [armhf])
</code></pre><p>繰り返しになりますが、Debian や Debian ベースのディストリビューションは非常に安定しています。一方で、このオプションは、アップグレード時の競合がないことを確認したい場合に便利です。</p><h3 id="-yes-"><code>--yes</code> オプションの使用方法:</h3><p><code>--yes</code> (または <code>-y</code> や <code>--assume-yes</code>) オプションは、安全であれば、全てのプロンプトに自動的に「はい」と回答します:</p><pre><code>kris@pihole:~ $ sudo apt-get upgrade --yes
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  libcamera0 raspi-config rpi-eeprom
3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,616 kB of archives.
After this operation, 1,596 kB of additional disk space will be used.
Get:1 http://archive.raspberrypi.org/debian bullseye/main armhf libcamera0 armhf 0~git20220426+18e68a9b-1 [548 kB]
Get:2 http://archive.raspberrypi.org/debian bullseye/main armhf raspi-config all 20220425 [30.3 kB]
Get:3 http://archive.raspberrypi.org/debian bullseye/main armhf rpi-eeprom armhf 13.13-1 [2,037 kB]
...
Processing triggers for libc-bin (2.31-13+rpt2+rpi1+deb11u2) ...
</code></pre><p><code>Do you want to continue? [Y/n]</code> は省略され、すべてのパッケージがアップグレードされます。</p><h2 id="-">よくある質問</h2><h3 id="sudo-apt-get-"><code>sudo</code> と <code>apt-get</code> とは？</h3><p><code>sudo apt-get update</code> および <code>sudo apt-get upgrade</code> というコマンドは、それぞれ <code>sudo</code>、<code>apt-get</code>、そして、<code>update</code> または <code>upgrade</code> の 3 つで構成されています。</p><p><code>sudo</code> は、"superuser do" の略で、管理者権限でプログラムを実行するためのコマンドです。</p><p>例えば、システムの再起動には管理者権限が必要です。このため、ターミナルで <code>reboot</code> コマンドを実行すると、次のようなエラーメッセージが表示されるかもしれません。</p><pre><code>Failed to set wall message, ignoring: Interactive authentication required.
Failed to reboot system via logind: Interactive authentication required.
Failed to open initctl fifo: Permission denied
Failed to talk to init daemon.
</code></pre><p>しかし、<code>sudo reboot</code> コマンドを実行し、管理者パスワードを入力すると、<code>reboot</code> コマンドが管理者権限で実行され、すぐにシステムが再起動されます。</p><p><code>apt-get</code> は、Debian および Debian ベースのディストリビューションでパッケージをインストールおよび管理するためのコマンドラインツールです。</p><!--kg-card-begin: html--><h3 id="what-s-the-difference-between-apt-get-and-apt"><code>apt-get</code> と <code>apt</code> の違いは？</h3><!--kg-card-end: html--><p><code>apt</code> は、Debian および Debian ベースのディストリビューションでアプリケーションをインストールおよび管理するための最新のツールです。</p><p><code>apt</code> と <code>apt-get</code> は互換性があり、<code>sudo apt update</code> と <code>sudo apt-get update</code> は、どちらもシステムパッケージを更新します。</p><p>主な違いとしては、<code>apt</code> の方が入力が簡単で出力がわかりやすく、パッケージのインストール中のプログレスバーなどユーザーフレンドリーな機能を含んでいることです。</p><p>この記事の多くの例では <code>apt-get</code> を使用していますが、個人的には <code>apt</code> を使用することをお勧めします。</p><h3 id="sudo-apt-get-update-sudo-apt-get-upgrade--1"><code>sudo apt-get update</code> と <code>sudo apt-get upgrade</code> は安全ですか？</h3><p>はい、Debian および Debian ベースのディストリビューションは、非常に安定しており、<code>update</code> と <code>upgrade</code> コマンドは安全に使用できます。これは、パッケージや依存関係、そしてディストリビューション自体の大規模なアップデートが年に一度か二度しかリリースされないからです。</p><p>欠点としては、最新のパッケージを使用したい場合は、Arch Linux などの最先端ディストリビューションとは異なり、追加の手間がかかることがあります。PPA を通じてサードパーティのリポジトリを設定したり、Snap や Flatpak などの別のパッケージングシステムを使用したり、自分でコンパイルする必要があるかもしれません。</p><p>とはいえ、少し古いソフトウェアによる安定性を重視する価値は十分にあると考えています。</p><h3 id="sudo-apt-get-update-sudo-apt-get-upgrade--2"><code>sudo apt-get update</code> と <code>sudo apt-get upgrade</code> を連続して実行できますか？</h3><p><code>sudo apt-get update</code> を実行して完了を待ってから、<code>sudo apt-get upgrade</code> を実行するのは、面倒ではないかと考えるかもしれません。</p><p><code>sudo apt-get update</code> と <code>sudo apt-get upgrade</code> の両方が比較的速く実行されるとはいえ、指令をまとめて実行し、数分後に確認する方が楽なことがあります。</p><p><code>&amp;&amp;</code> 演算子を使用すると、次のようにコマンドを連続して実行できます。</p><pre><code>sudo apt-get update &amp;&amp; sudo apt-get upgrade
</code></pre><p><code>&amp;&amp;</code> 演算子の重要なポイントは、演算子の後のコマンドが実行されるのは、前のコマンドが成功した場合だけということです。</p><p>上記の例を使用すると、<code>sudo apt-get upgrade</code> は <code>sudo apt-get update</code> が成功した場合にのみ実行されます。例えば、パッケージリストの更新中にネットワークの問題が発生した場合には、<code>sudo apt-get update</code> がスキップされます。</p><h3 id="sudo-apt-get-dist-upgrade-sudo-apt-full-upgrade-"><code>sudo apt-get dist-upgrade</code> と <code>sudo apt full-upgrade</code> とは？これらは安全に使用できますか？</h3><p><a href="https://askubuntu.com/questions/770135/apt-full-upgrade-versus-apt-get-dist-upgrade">StackOverflow のスレッド</a>によれば、これらのコマンドは、内部的には同じことを行います。つまり、古くなったパッケージをアップグレードし、必要に応じて賢くパッケージを削除します。</p><p>基本的には、<code>sudo apt-get upgrade</code> と <code>sudo apt autoremove</code> のコマンドを組み合わせたようなものです。</p><p>これらのコマンドを実行することは、ほとんどの場合安全なはずです。</p><p>しかし、私を含め多くの人が、<code>sudo apt-get update</code> と <code>sudo apt-get upgrade</code> を使用することを推奨しています。変更される内容を確認する機会が増えますし、<code>upgrade</code> は、パッケージを削除しないため、システムへの影響が少なくなります。</p><h2 id="-thanks_for_reading-sh"><code>./thanks_for_reading.sh</code></h2><p><code>sudo apt-get update</code> と <code>sudo apt-get upgrade</code> の説明が役に立ったと感じたら、ぜひ友人にシェアしていただき、より多くの人に知識を広めてください。</p><p>また、<a href="https://twitter.com/kriskoishigawa">Twitter</a> で感想をお聞かせいただけると嬉しいです。</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Linux でファイルやディレクトリを削除する方法 – フォルダとファイルを削除するコマンド ]]>
                </title>
                <description>
                    <![CDATA[ 著者: Shittu Olumide Linux でファイルやディレクトリを削除することは、すべてのユーザーが知っておくべき基本的な操作です。一見シンプルな操作に思えますが、実際には用途に応じたさまざまな削除方法があります。 この記事では、Linux でのファイルやディレクトリの削除方法について、手順を追ったガイドで解説します。ファイルやフォルダとその内容を削除するためのコマンドについても詳しく説明します。 Linux でファイルを削除する方法 ファイルの削除とは、ファイルシステムからそのファイルへの参照を取り除くことを指します。ファイル自体はすぐにはストレージデバイスから消えませんが、その領域は再利用できる状態としてマークされます。 Linux でファイルを削除する方法はいくつかあります。以下は一般的な削除方法です。 GUI ファイルマネージャの使用 ほとんどの Linux ディストリビューションには、グラフィカルインターフェイスを使用してファイルを削除できる GUI ファイルマネージャが付属しています。削除したいファイルに移動し、右クリックして「削除」または「ごみ箱に移動 ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/how-to-delete-a-file-or-directory-in-linux/</link>
                <guid isPermaLink="false">67864e7fd7aa1e04405877b9</guid>
                
                    <category>
                        <![CDATA[ Linux ]]>
                    </category>
                
                    <category>
                        <![CDATA[ command ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ YUUSUKE OKAMOTO ]]>
                </dc:creator>
                <pubDate>Fri, 17 Jan 2025 12:44:59 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2025/01/Shittu-Olumide-How-to-Delete-a-File-or-Directory-in-Linux---Command-to-Remove-a-Folder-and-its-Contents.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/how-to-delete-a-file-or-directory-in-linux/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to Delete a File or Directory in Linux – Command to Remove a Folder and its Contents</a>
      </p><p>著者: Shittu Olumide</p><p>Linux でファイルやディレクトリを削除することは、すべてのユーザーが知っておくべき基本的な操作です。一見シンプルな操作に思えますが、実際には用途に応じたさまざまな削除方法があります。</p><p>この記事では、Linux でのファイルやディレクトリの削除方法について、手順を追ったガイドで解説します。ファイルやフォルダとその内容を削除するためのコマンドについても詳しく説明します。</p><h2 id="linux-">Linux でファイルを削除する方法</h2><p>ファイルの削除とは、ファイルシステムからそのファイルへの参照を取り除くことを指します。ファイル自体はすぐにはストレージデバイスから消えませんが、その領域は再利用できる状態としてマークされます。</p><p>Linux でファイルを削除する方法はいくつかあります。以下は一般的な削除方法です。</p><h3 id="gui-">GUI ファイルマネージャの使用</h3><p>ほとんどの Linux ディストリビューションには、グラフィカルインターフェイスを使用してファイルを削除できる GUI ファイルマネージャが付属しています。削除したいファイルに移動し、右クリックして「削除」または「ごみ箱に移動」を選択します。</p><h3 id="rm-"><code>rm</code> コマンドの使用</h3><p><code>rm</code> (remove) コマンドを使うことで、Linux 上のファイルやディレクトリを削除できます。<code>rm</code> コマンドを利用してファイルを削除するには、ターミナルで以下のコマンドを入力します。</p><pre><code>rm filename 
</code></pre><p><code>filename</code> には削除したいファイル名を指定してください。ファイルが書き込み保護されている場合や、削除するための権限がない場合には、削除の確認を求められます。</p><h3 id="shred-"><code>shred</code> コマンドの使用</h3><p><code>shred</code> コマンドは、ファイルを削除する前に、ファイルの内容を複数回上書きすることで、より確実に削除する方法です。この方法によって、削除されたファイルを復元するのが、難しくなります。</p><p><code>shred</code> コマンドを使うには、ターミナルで以下のコマンドを入力します。</p><pre><code>shred -u filename 
</code></pre><p><code>filename</code> には削除したいファイル名を指定してください。<code>-u</code> オプションは、上書き後にファイルを削除するように指示しています。</p><h3 id="trash-cli-"><code>trash-cli</code> コマンドの使用</h3><p><code>trash-cli</code> コマンドは、ファイルをすぐに削除するのではなく、ごみ箱に移動させることで、より安全に削除できます。<code>trash-cli</code> コマンドを使用するには、まず必要なパッケージをインストールする必要があります。</p><pre><code>sudo apt-get install trash-cli 
</code></pre><p>インストール後、以下のコマンドでファイルを削除できます。</p><pre><code>trash filename 
</code></pre><h2 id="linux--1">Linux でディレクトリを削除する方法</h2><p>Linux でディレクトリを削除するには、<code>rmdir</code> または <code>rm</code> コマンドを使用できます。<code>rmdir</code> コマンドは空のディレクトリを削除するのに使い、<code>rm</code> コマンドはディレクトリとそのディレクトリに含まれる全てのデータを削除します。</p><h3 id="rm--1"><code>rm</code> コマンドの使用</h3><p>以下は、<code>rm</code> コマンドを使って Linux でディレクトリを削除する手順です。</p><ol><li><strong>ターミナルを開く</strong>: Linux でディレクトリを削除するには、コマンドラインを利用する必要があります。キーボードで「Ctrl+Alt+T」を押すか、システムのアプリケーションランチャーで「terminal」を検索してターミナルを開きます。</li><li><strong>削除したいディレクトリに移動する</strong>: <code>cd</code> コマンドを使って、削除したいディレクトリに移動します。たとえば、削除したいディレクトリがホームフォルダ内の <code>my_directory</code> という名前の場合、<code>cd ~/my_directory</code> と入力して「Enter」を押します。</li><li><strong>ディレクトリの内容を確認する</strong>: ディレクトリを削除する前に、その内容を確認して正しいディレクトリを削除していることを確認するのが良いでしょう。<code>ls</code> コマンドを使ってディレクトリの内容を一覧表示します。たとえば、「ls」と入力して「Enter」を押すと、<code>my_directory</code> フォルダ内のファイルやフォルダが表示されます。</li><li><strong>ディレクトリとその内容を削除する</strong>: ディレクトリとその内容をすべて削除するには、<code>-r</code> オプション (再帰的削除) を付けた <code>rm</code> コマンドを使います。<code>rm -r my_directory</code> と入力して「Enter」を押します。削除の確認を求められるので、「y」と入力して「Enter」を押して確認します。</li><li><strong>ディレクトリが削除されたことを確認する</strong>: ディレクトリが削除されたことを確認するには、親ディレクトリの内容を表示するために <code>ls</code> コマンドを使います。たとえば、<code>my_directory</code> フォルダがホームフォルダ内にあった場合、<code>ls ~/</code> と入力して「Enter」を押します。<code>my_directory</code> フォルダはもう表示されないはずです。</li></ol><p>注意: <code>rm -r</code> コマンドを使用する際は、ファイルやディレクトリを復元できない形にて削除されるので、注意してください。</p><h3 id="rmdir-"><code>rmdir</code> コマンドの使用</h3><p>以下は、<code>rmdir</code> コマンドを使って Linux でディレクトリを削除する手順です。</p><ol><li><strong>ターミナルを開く</strong>: キーボードで「Ctrl+Alt+T」を押すか、システムのアプリケーションランチャーで「terminal」を検索してターミナルを開きます。</li><li><strong>削除したいディレクトリに移動する</strong>: <code>cd</code> コマンドを使って削除したいディレクトリに移動します。たとえば、削除したいディレクトリがホームフォルダ内の <code>my_directory</code> という名前の場合、<code>cd ~/my_directory</code> と入力して「Enter」を押します。</li><li><strong>ディレクトリを削除する</strong>: <code>rmdir</code> コマンドに続けてディレクトリの名前を入力します。<code>rmdir my_directory</code> と入力して「Enter」を押します。もし、ディレクトリが空でない場合には、エラーメッセージが表示され、削除は行われません。</li><li><strong>ディレクトリが削除されたことを確認する</strong>: ディレクトリが削除されたことを確認するには、親ディレクトリの内容を表示するために <code>ls</code> コマンドを使います。たとえば、<code>my_directory</code> フォルダがホームフォルダ内にあった場合、<code>ls ~/</code> と入力して「Enter」を押します。<code>my_directory</code> フォルダはもう表示されないはずです。</li></ol><h2 id="-">まとめ</h2><p><code>rm</code> コマンドはファイルを削除するためによく使われるコマンドであり、<code>rmdir</code> や <code>rm -r</code> または <code>rm -R</code> オプションはディレクトリを削除するために使用されます。この手順を追ったガイドに従うことで、Linux 上で効率的にファイルやディレクトリを削除できるようになります。</p><p>追加のヒント:</p><ol><li><code>rm</code> コマンドを <code>-r</code> または <code>-R</code> オプションと一緒に使う際は注意が必要です。ファイルやディレクトリを取り戻せない形で削除する可能性があります。</li><li>間違ったファイルやディレクトリを誤って削除しないよう、削除する前にファイル名やディレクトリ名を必ず再確認してください。</li><li>ファイルを削除するのに他の方法より時間がかかることがあるため、<code>shred</code> コマンドは必要な時だけ使用してください。</li><li>一部のファイルやディレクトリの削除には管理者 (root) 権限が必要な場合があるため、ファイルやディレクトリを削除する際のファイルの権限に気を付けてください。</li></ol><p><a href="https://www.twitter.com/Shittu_Olumide_" rel="nofollow">Twitter</a> または <a href="https://www.linkedin.com/in/olumide-shittu" rel="nofollow">LinkedIn</a> でつながりましょう。私の <a href="https://www.youtube.com/channel/UCNhFxpk6hGt5uMCKXq0Jl8A" rel="nofollow">YouTube</a> チャンネルにも登録できます。</p><p>プログラミングを楽しんでください！</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Bash スクリプトチュートリアル – 初心者向けの Linux シェルスクリプトとコマンドライン ]]>
                </title>
                <description>
                    <![CDATA[ Linux では、プロセスの自動化は shell スクリプトに大きく依存しています。shell スクリプトとは、一連のコマンドを含むファイルを作成し、まとめて実行できるようにすることを意味します。 この記事では、変数、コマンド、入力 / 出力、およびデバッグを含む bash スクリプトの基本から説明します。それぞれの例もあわせて見ていきます。 それでは始めましょう。🚀 目次  1. 事前準備  2. はじめに  * Bash スクリプトの定義  * Bash スクリプトの利点  * Bash shell とコマンドラインインターフェースの概要  3. Bash スクリプトの始め方  * コマンドラインから Bash コマンドを実行する方法  * Bash スクリプトの作成と実行方法  4. Bash スクリプトの基本  * ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/bash-scripting-tutorial-linux-shell-script-and-command-line-for-beginners/</link>
                <guid isPermaLink="false">6655a9337aebac04055b9be1</guid>
                
                    <category>
                        <![CDATA[ Linux ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Bash ]]>
                    </category>
                
                    <category>
                        <![CDATA[ command ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Charlotte Stone ]]>
                </dc:creator>
                <pubDate>Fri, 12 Jul 2024 15:57:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2024/05/Copy-of-Cast-a-Function-in-SQL---Convert-Char-to-Int-SQL-Server-Example.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/bash-scripting-tutorial-linux-shell-script-and-command-line-for-beginners/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">https://www.freecodecamp.org/news/bash-scripting-tutorial-linux-shell-script-and-command-line-for-beginners/</a>
      </p><p>Linux では、プロセスの自動化は shell スクリプトに大きく依存しています。shell スクリプトとは、一連のコマンドを含むファイルを作成し、まとめて実行できるようにすることを意味します。</p><p>この記事では、変数、コマンド、入力 / 出力、およびデバッグを含む bash スクリプトの基本から説明します。それぞれの例もあわせて見ていきます。</p><p>それでは始めましょう。🚀</p><h2 id="-">目次</h2><!--kg-card-begin: markdown--><ol>
<li><a href="#pre-requisites">事前準備</a></li>
<li><a href="#introduction">はじめに</a></li>
</ol>
<ul>
<li><a href="#definition-of-bash-scripting">Bash スクリプトの定義</a></li>
<li><a href="#advantages-of-bash-scripting">Bash スクリプトの利点</a></li>
<li><a href="#overview-of-bash-shell-and-command-line-interface">Bash shell とコマンドラインインターフェースの概要</a></li>
</ul>
<ol start="3">
<li><a href="#how-to-get-started-with-bash-scripting">Bash スクリプトの始め方</a></li>
</ol>
<ul>
<li><a href="#how-to-run-bash-commands-from-the-command-line">コマンドラインから Bash コマンドを実行する方法</a></li>
<li><a href="#how-to-create-and-execute-bash-scripts">Bash スクリプトの作成と実行方法</a></li>
</ul>
<ol start="4">
<li><a href="#bash-scripting-basics">Bash スクリプトの基本</a></li>
</ol>
<ul>
<li><a href="#comments-in-bash-scripting">Bash スクリプトでのコメント</a></li>
<li><a href="#variables-and-data-types-in-bash">Bash における変数とデータ型</a></li>
<li><a href="#input-and-output-in-bash-scripts">入力と出力に関する Bash スクリプト</a></li>
<li><a href="#basic-bash-commands-echo-read-etc-">基本的な Bash コマンド (echo、read など)</a></li>
<li><a href="#conditional-statements-if-else-">条件文 (if / else)</a></li>
</ul>
<ol start="5">
<li><a href="#looping-and-branching-in-bash">Bash におけるループと分岐</a></li>
</ol>
<ul>
<li><a href="#while-loop">While ループ</a></li>
<li><a href="#for-loop">For ループ</a></li>
<li><a href="#case-statements">Case 文</a></li>
</ul>
<ol start="6">
<li><a href="#how-to-schedule-scripts-using-cron">cron を使用したスクリプトのスケジュール設定方法</a></li>
<li><a href="#how-to-debug-and-troubleshoot-bash-scripts">Bash スクリプトのデバッグとトラブルシューティング方法</a></li>
<li><a href="#conclusion">結論</a></li>
</ol>
<ul>
<li><a href="#resources-for-learning-more-about-bash-scripting">Bash スクリプトに関するさらなる学習リソース</a></li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: html--><h2 id="pre-requisites">事前準備</h2><!--kg-card-end: html--><p>このチュートリアルに従うには、次のアクセス権が必要です:</p><ul><li>コマンドラインにアクセスできる、実行可能な Linux のバージョン。</li></ul><p>Linux をインストールしていない場合や、まだ始めたばかりの場合は、<a href="https://replit.com/~">Replit</a> を介して簡単に Linux コマンドラインにアクセスできます。Replit はブラウザベースの IDE であり、数分で bash シェルにアクセスできます。</p><p>Windows システム上に Linux をインストールする方法として、WSL (Windows Subsystem for Linux) を使用することもできます。<a href="https://www.freecodecamp.org/news/how-to-install-wsl2-windows-subsystem-for-linux-2-on-windows-10/">そのためのチュートリアルはこちら</a>です。</p><!--kg-card-begin: html--><h2 id="introduction">はじめに</h2><!--kg-card-end: html--><!--kg-card-begin: html--><h3 id="definition-of-bash-scripting">Bash スクリプトの定義</h3><!--kg-card-end: html--><p>Bash スクリプトとは、bash プログラムによって一行ずつ実行されるコマンドのシーケンスを含むファイルのことです。これにより、特定のディレクトリへの移動、フォルダの作成、コマンドラインを使用したプロセスの起動など、一連の操作を実行することができます。</p><p>これらのコマンドをスクリプトに保存することにより、スクリプトを実行するだけで、同じ手順を何度も繰り返すことができます。</p><!--kg-card-begin: html--><h3 id="advantages-of-bash-scripting">Bash スクリプトの利点</h3><!--kg-card-end: html--><p>Bash スクリプトは、システム管理タスクの自動化、システムリソースの管理、および Unix / Linux システムでのその他のルーチンタスクを実行するための強力で多用途なツールです。シェルスクリプトの利点には以下のものがあります:</p><ul><li><strong>自動化</strong>: シェルスクリプトは繰り返しのタスクやプロセスを自動化でき、手動実行によるエラーのリスクを減らしながら時間を節約できます。</li><li><strong>移植性</strong>: シェルスクリプトは Unix、Linux、macOS、さらにはエミュレーターや仮想マシンを使えば Windows でも実行可能です。</li><li><strong>柔軟性</strong>: シェルスクリプトはカスタマイズ性が非常に高く、特定の要件に合わせて簡単に修正できます。他のプログラミング言語やユーティリティと組み合わせて、より強力なスクリプトを作成することも可能です。</li><li><strong>アクセシビリティ</strong>: シェルスクリプトは簡単に書ける上、特別なツールやソフトウェアを必要としません。どのテキストエディタでも編集でき、大部分のオペレーティングシステムには標準でシェルインタープリターが搭載されています。</li><li><strong>統合性</strong>: シェルスクリプトはデータベース、ウェブサーバー、クラウドサービスなど、他のツールやアプリケーションと統合でき、より複雑な自動化やシステム管理タスクを実行することができます。</li><li><strong>デバッグ</strong>: シェルスクリプトはデバッグが容易で、ほとんどのシェルにはデバッグおよびエラーレポートツールが内蔵されており、問題を迅速に特定して修正するのに役立ちます。</li></ul><!--kg-card-begin: html--><h3 id="overview-of-bash-shell-and-command-line-interface">Bash シェルとコマンドラインインターフェースの概要</h3><!--kg-card-end: html--><p>「シェル」と「bash」という用語は同じように使われることがありますが、二つの間には微妙な違いがあります。</p><p>「シェル」という用語は、オペレーティングシステムと対話するためのコマンドラインインターフェースを提供するプログラムを指します。Bash (Bourne-Again SHell) は最も一般的に使用される Unix / Linux シェルの一つで、多くの Linux ディストリビューションでデフォルトのシェルとなっています。</p><p>シェルやコマンドラインインターフェースは次のような見た目をしています:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/06/image-135.png" class="kg-image" alt="image-135" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2024/06/image-135.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2024/06/image-135.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="532" loading="lazy"><figcaption>ユーザーからのコマンドを受け付け、出力を表示するシェル</figcaption></figure><p>上記の出力例では、<code>zaira@Zaira</code> がシェルプロンプトです。シェルが対話的に使用される場合、ユーザーからのコマンドを待っているときに <code>$</code> が表示されます。</p><p>シェルが root (管理権限を持つユーザー) として実行されている場合、プロンプトは <code>#</code> に変わります。スーパーユーザーのシェルプロンプトは次のような見た目です:</p><pre><code class="language-Bash">[root@host ~]#</code></pre><p>Bash はシェルの一種ですが、他にも Korn シェル (ksh)、C シェル (csh)、Z シェル (zsh) などのシェルがあります。各シェルにはそれぞれ独自の構文と機能がありますが、いずれもオペレーティングシステムと対話するためのコマンドラインインターフェースを提供するという共通の目的を持っています。</p><p><code>ps</code> コマンドを使用して、自分のシェルの種類を確認することができます:</p><pre><code class="language-Bash">ps</code></pre><p>私の環境では、以下のように出力結果されます:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/06/image-134.png" class="kg-image" alt="image-134" width="417" height="145" loading="lazy"><figcaption>シェルの種類の確認。私は Bash シェルを使用しています。</figcaption></figure><p>要約すると、「シェル (shell)」はコマンドラインインターフェースを提供する任意のプログラムを指す広義の用語であり、「Bash」は Unix / Linux システムで広く使用されている特定の種類のシェルです。</p><p>注意: このチュートリアルでは「bash」シェルを使用します。</p><!--kg-card-begin: html--><h2 id="how-to-get-started-with-bash-scripting">Bash スクリプトの始め方</h2><!--kg-card-end: html--><!--kg-card-begin: html--><h3 id="how-to-run-bash-commands-from-the-command-line">コマンドラインから Bash コマンドを実行する方法</h3><!--kg-card-end: html--><p>前述の通り、シェルプロンプトは以下のように表示されます:</p><pre><code class="language-Bash">[username@host ~]$</code></pre><p><code>$</code> マークの後に任意のコマンドを入力し、その出力をターミナルで確認できます。</p><p>一般的に、コマンドは以下の構文に従います:</p><pre><code class="language-Bash">command [OPTIONS] arguments</code></pre><p>基本的な Bash コマンドについていくつか説明しながら、その出力を見てみましょう。一緒に試しながら進めてください :)</p><ul><li><code>date</code>: 現在の日付を表示します。</li></ul><pre><code class="language-Bash">zaira@Zaira:~/shell-tutorial$ date
Tue Mar 14 13:08:57 PKT 2023</code></pre><ul><li><code>pwd</code>: 現在の作業ディレクトリを表示します。</li></ul><pre><code class="language-Bash">zaira@Zaira:~/shell-tutorial$ pwd
/home/zaira/shell-tutorial</code></pre><ul><li><code>ls</code>: 現在のディレクトリの内容を一覧表示します。</li></ul><pre><code class="language-Bash">zaira@Zaira:~/shell-tutorial$ ls
check_plaindrome.sh  count_odd.sh  env  log  temp</code></pre><ul><li><code>echo</code>: テキスト文字列や変数の値をターミナルに表示します。</li></ul><pre><code class="language-Bash">zaira@Zaira:~/shell-tutorial$ echo "Hello bash"
Hello bash</code></pre><p>コマンドのマニュアルは <code>man</code> コマンドでいつでも参照できます。</p><p>例えば、<code>ls</code> のマニュアルは以下のように表示されます:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/06/image-138.png" class="kg-image" alt="image-138" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2024/06/image-138.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2024/06/image-138.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/size/w1600/2024/06/image-138.png 1600w, https://www.freecodecamp.org/japanese/news/content/images/2024/06/image-138.png 1890w" sizes="(min-width: 720px) 720px" width="1890" height="969" loading="lazy"><figcaption><code>man</code> コマンドを使用すると、コマンドの詳細なオプションを確認できます。</figcaption></figure><!--kg-card-begin: html--><h3 id="how-to-create-and-execute-bash-scripts">Bash スクリプトの作成と実行方法</h3><!--kg-card-end: html--><h3 id="--1">スクリプトの命名規則</h3><p>命名規則によれば、Bash スクリプトは <code>.sh</code> で終わります。ただし、<code>sh</code> の拡張子なしでも Bash スクリプトは正常に実行できます。</p><h3 id="shebang-">Shebang の追加</h3><p>Bash スクリプトは「シバン」<code>shebang</code> で始まります。Shebang は、hash <code>#</code> と bang <code>!</code> に続いて bash シェルのパスが書かれたものです。これはスクリプトの最初の行に書かれます。Shebang はシェルに対して、このスクリプトを bash シェルで実行するよう指示します。Shebang は単に bash インタープリターの絶対パスです。</p><p>以下は shebang ステートメントの例です:</p><pre><code class="language-Bash">#!/bin/bash</code></pre><p>次のコマンドを使用して、お使いの bash シェルのパス (上記の例とは異なる場合があります) を見つけることができます:</p><pre><code class="language-Bash">which bash</code></pre><h3 id="-bash-">最初の Bash スクリプトを作成する</h3><p>これから作成するスクリプトでは、ユーザーにパスの入力を促します。そして結果として、そのパスの内容を一覧表示します。</p><p>まず、<code>vi</code> コマンドを使用して、<code>run_all.sh</code> という名前のファイルを作成してください。他の任意のエディタを使用しても構いません。</p><pre><code class="language-Bash">vi run_all.sh</code></pre><p>ファイルに以下のコマンドを追加して保存してください:</p><figure class="kg-card kg-code-card"><pre><code class="language-Bash">#!/bin/bash
echo "Today is " `date`

echo -e "\nenter the path to directory"
read the_path

echo -e "\n you path has the following files and folders: "
ls $the_path</code></pre><figcaption>ユーザーが指定したディレクトリの内容を表示するスクリプト</figcaption></figure><p>スクリプトを行ごとに詳しく見てみましょう。同じスクリプトを、行番号付きで以下に示します。</p><pre><code class="language-Bash">  1 #!/bin/bash
  2 echo "Today is " `date`
  3
  4 echo -e "\nenter the path to directory"
  5 read the_path
  6
  7 echo -e "\n you path has the following files and folders: "
  8 ls $the_path</code></pre><ul><li>1 行目: シバン (<code>#!/bin/bash</code>) は Bash シェルのパスを指します。</li><li>2 行目: <code>echo</code> コマンドはバッククォートで囲まれた <code>date</code> を使用して、現在の日付と時刻をターミナルに表示します。</li><li>4 行目: ユーザーに有効なパスを入力してもらいます。</li><li>5 行目: <code>read</code> コマンドは入力を読み取り、変数 <code>the_path</code> に格納します。</li><li>8 行目: <code>ls</code> コマンドは変数に格納されたパスを取り、現在のファイルやフォルダを表示します。</li></ul><h3 id="bash-">Bash スクリプトを実行する</h3><p>スクリプトを実行可能にするために、次のコマンドでユーザーに実行権限を付与します:</p><pre><code class="language-Bash">chmod u+x run_all.sh</code></pre><p>ここでは、</p><ul><li><code>chmod</code> は現在のユーザー <code>u</code> のファイルの所有権を変更します。</li><li><code>+x</code> は現在のユーザーに実行権限を追加します。これにより、ファイルの所有者であるユーザーがスクリプトを実行できるようになります。</li><li><code>run_all.sh</code> は実行可能にしたいファイルです。</li></ul><p>以下の方法でスクリプトを実行できます:</p><ul><li><code>sh run_all.sh</code></li><li><code>bash run_all.sh</code></li><li><code>./run_all.sh</code></li></ul><p>それでは実際に動作する様子を見てみましょう🚀</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/06/run-script-bash-2.gif" class="kg-image" alt="run-script-bash-2" width="927" height="411" loading="lazy"></figure><!--kg-card-begin: html--><h2 id="bash-scripting-basics">Bash スクリプトの基本</h2><!--kg-card-end: html--><!--kg-card-begin: html--><h3 id="comments-in-bash-scripting">Bash スクリプトでのコメント</h3><!--kg-card-end: html--><p>Bash スクリプトのコメントは <code>#</code> から始まります。つまり、<code>#</code> で始まる行はコメントであり、インタープリターに無視されます。</p><p>コメントはコードのドキュメント化に非常に役立ち、他の人がコードを理解しやすくするためにも、コメントを追加するのは良い習慣です。</p><p>以下はコメントの例です:</p><pre><code class="language-bash"># This is an example comment
# Both of these lines will be ignored by the interpreter</code></pre><!--kg-card-begin: html--><h3 id="variables-and-data-types-in-bash">Bash における変数とデータ型</h3><!--kg-card-end: html--><p>変数を使用するとデータを保存できます。変数を使ってスクリプトのあらゆる場所でデータを読み取り、アクセスし、操作することができます。</p><p>Bash にはデータ型がありません。Bash では、変数は数値、個々の文字、または文字列を保存することができます。</p><p>Bash では、変数の値を以下のように使用および設定できます:</p><ol><li>直接値を割り当てる例:</li></ol><pre><code class="language-bash">country=Pakistan</code></pre><!--kg-card-begin: markdown--><ol start="2">
<li>コマンド置換を使用して、プログラムやコマンドの出力に基づいて値を割り当てる例。既存の変数の値にアクセスするには <code>$</code> が必要です。</li>
</ol>
<!--kg-card-end: markdown--><figure class="kg-card kg-code-card"><pre><code class="language-bash">same_country=$country</code></pre><figcaption><code>country</code> の値を新しい変数 <code>same_country</code> に割り当てる</figcaption></figure><p>変数の値にアクセスするには、変数名の頭に <code>$</code> を付け加えます。</p><figure class="kg-card kg-code-card"><pre><code class="language-bash">zaira@Zaira:~$ country=Pakistan
zaira@Zaira:~$ echo $country
Pakistan
zaira@Zaira:~$ new_country=$country
zaira@Zaira:~$ echo $new_country
Pakistan</code></pre><figcaption>変数に値を割り当てて値を表示する</figcaption></figure><h3 id="--2">変数の命名規則</h3><p>Bash スクリプティングにおける変数の命名規則は以下の通りです:</p><!--kg-card-begin: markdown--><ol>
<li>変数名は文字またはアンダースコア (<code>_</code>) で始める必要があります。</li>
<li>変数名には文字、数字、アンダースコア (<code>_</code>) を含めることができます。</li>
<li>変数名は大文字と小文字を区別します。</li>
<li>変数名にはスペースや特殊文字を含めることはできません。</li>
<li>変数の目的を反映した説明的な名前を使用します。</li>
<li><code>if</code>、<code>then</code>、<code>else</code>、<code>fi</code> などの予約キーワードを変数名として使用することは避けます。</li>
</ol>
<!--kg-card-end: markdown--><p>以下は Bash で有効な変数名の例です:</p><pre><code class="language-bash">name
count
_var
myVar
MY_VAR</code></pre><p>以下は Bash で無効な変数名の例です:</p><pre><code class="language-bash">2ndvar (variable name starts with a number)
my var (variable name contains a space)
my-var (variable name contains a hyphen)</code></pre><p>これらの命名規則に従うことは、Bash スクリプトをより読みやすく、メンテナンスしやすくするのに役立ちます。</p><!--kg-card-begin: markdown--><h3 id="input-and-output-in-bash-scripts">入力と出力に関する Bash スクリプト</h3><!--kg-card-end: markdown--><h3 id="--3">入力の収集</h3><p>このセクションでは、スクリプトに入力を提供するいくつかの方法について説明します。</p><ol><li>ユーザーの入力を読み取り、変数に格納する方法</li></ol><p><code>read</code> コマンドを使用してユーザーの入力を読み取ることができます。</p><pre><code class="language-bash">#!/bin/bash 

echo "What's your name?" 

read entered_name 

echo -e "\nWelcome to bash tutorial" $entered_name</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/07/name-sh.gif" class="kg-image" alt="name-sh" width="843" height="431" loading="lazy"></figure><!--kg-card-begin: markdown--><ol start="2">
<li>ファイルから読み取る方法</li>
</ol>
<!--kg-card-end: markdown--><p>このコードは、<code>input.txt</code> という名前のファイルから各行を読み取り、それをターミナルに出力します。while ループについては後ほど学びます。</p><pre><code class="language-bash">while read line
do
  echo $line
done &lt; input.txt
</code></pre><!--kg-card-begin: markdown--><ol start="3">
<li>コマンドライン引数を使う方法</li>
</ol>
<!--kg-card-end: markdown--><p>Bash スクリプトや関数では、<code>$1</code> は渡された最初の引数、<code>$2</code> は 2 番目の引数を表します。その後の数字も同様です。</p><p>下記のスクリプトは、コマンドライン引数として名前を受け取り、個別の挨拶メッセージを表示します。</p><pre><code class="language-bash">echo "Hello, $1!"
</code></pre><p>スクリプトに引数として <code>Zaira</code> を渡してみます。</p><figure class="kg-card kg-code-card"><pre><code class="language-bash">#!/bin/bash
echo "Hello, $1!"</code></pre><figcaption>スクリプト <code>greeting.sh</code> のコード</figcaption></figure><!--kg-card-begin: markdown--><p><strong>出力:</strong></p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/07/name-sh-1.gif" class="kg-image" alt="name-sh-1" width="883" height="455" loading="lazy"></figure><h3 id="--4">出力の表示</h3><p>ここでは、スクリプトから出力を受け取るいくつかの方法について説明します。</p><ol><li>ターミナルへの出力:</li></ol><pre><code class="language-bash">echo "Hello, World!"
</code></pre><p>これは、ターミナルに「Hello, World!」というテキストを表示します。</p><!--kg-card-begin: markdown--><ol start="2">
<li>ファイルへの書き込み:</li>
</ol>
<!--kg-card-end: markdown--><pre><code class="language-bash">echo "This is some text." &gt; output.txt</code></pre><p>これは、「This is some text.」というテキストを <code>output.txt</code> という名前のファイルに書き込みます。なお、<code>&gt;</code> 演算子はファイルに既に内容がある場合、それを上書きします。</p><!--kg-card-begin: markdown--><ol start="3">
<li>ファイルへの追記:</li>
</ol>
<!--kg-card-end: markdown--><pre><code class="language-bash">echo "More text." &gt;&gt; output.txt</code></pre><p>これは、「More text.」というテキストを <code>output.txt</code> ファイルの末尾に追記します。</p><!--kg-card-begin: markdown--><ol start="4">
<li>出力のリダイレクト:</li>
</ol>
<!--kg-card-end: markdown--><pre><code class="language-bash">ls &gt; files.txt</code></pre><p>これは、現在のディレクトリ内のファイルを一覧表示し、その出力を <code>files.txt</code> という名前のファイルに書き込みます。この方法で任意のコマンドの出力をファイルにリダイレクトできます。</p><!--kg-card-begin: html--><h3 id="basic-bash-commands-echo-read-etc-">基本的な Bash コマンド (echo、read など)</h3><!--kg-card-end: html--><p>以下は、最もよく使われる Bash コマンドのリストです:</p><!--kg-card-begin: markdown--><ol>
<li><code>cd</code>: ディレクトリを別の場所に変更します。</li>
<li><code>ls</code>: 現在のディレクトリの内容を一覧表示します。</li>
<li><code>mkdir</code>: 新しいディレクトリを作成します。</li>
<li><code>touch</code>: 新しいファイルを作成します。</li>
<li><code>rm</code>: ファイルまたはディレクトリを削除します。</li>
<li><code>cp</code>: ファイルまたはディレクトリをコピーします。</li>
<li><code>mv</code>: ファイルまたはディレクトリを移動または名前を変更します。</li>
<li><code>echo</code>: テキストをターミナルに表示します。</li>
<li><code>cat</code>: ファイルの内容を連結して表示します。</li>
<li><code>grep</code>: ファイル内のパターンを検索します。</li>
<li><code>chmod</code>: ファイルまたはディレクトリの権限を変更します。</li>
<li><code>sudo</code>: 管理者権限でコマンドを実行します。</li>
<li><code>df</code>: 使用可能なディスク容量を表示します。</li>
<li><code>history</code>: 以前に実行したコマンドのリストを表示します。</li>
<li><code>ps</code>: 実行中のプロセスに関する情報を表示します。</li>
</ol>
<!--kg-card-end: markdown--><!--kg-card-begin: html--><h3 id="conditional-statements-if-else-">条件文 (if / else)</h3><!--kg-card-end: html--><p>条件を評価してブール値 (true または false) を返す式は、条件と呼ばれます。条件を評価する方法には、<code>if</code>、<code>if-else</code>、<code>if-elif-else</code>、およびネストした条件分岐があります。</p><!--kg-card-begin: markdown--><p><strong>構文:</strong></p>
<!--kg-card-end: markdown--><figure class="kg-card kg-code-card"><pre><code class="language-bash">if [[ condition ]];
then
	statement
elif [[ condition ]]; then
	statement 
else
	do this by default
fi</code></pre><figcaption>Bash の条件文の構文</figcaption></figure><p>論理演算子、AND <code>-a</code> および OR <code>-o</code>、を使用して、より詳細な比較を行うことができます。</p><figure class="kg-card kg-code-card"><pre><code class="language-bash">if [ $a -gt 60 -a $b -lt 100 ]</code></pre><figcaption>この文は、「a が 60 より大きい」かつ「b が 100 未満」という両方の条件が <code>true</code> であるかどうかをチェックします。</figcaption></figure><p>ここでは、ユーザーが入力した数値が正、負、またはゼロのいずれかを判定するために、<code>if</code>、<code>if-else</code>、および <code>if-elif-else</code> 文を使用する Bash スクリプトの例を見てみましょう。</p><figure class="kg-card kg-code-card"><pre><code class="language-bash">#!/bin/bash

echo "Please enter a number: "
read num

if [ $num -gt 0 ]; then
  echo "$num is positive"
elif [ $num -lt 0 ]; then
  echo "$num is negative"
else
  echo "$num is zero"
fi
</code></pre><figcaption>数値が正、負、またはゼロのいずれかを判定するスクリプト</figcaption></figure><p>最初に、スクリプトはユーザーに数値の入力を促します。次に、その数値が 0 より大きいかどうかを <code>if</code> 文でチェックします。もし数値が 0 より大きければ、スクリプトは数値が正であると出力します。当てはまらない場合、スクリプトは次の <code>if-elif</code> 文に進みます。ここで、スクリプトは数値が 0 より小さいかどうかをチェックします。もし数値が 0 より小さければ、スクリプトは数値が負であると出力します。最後に、もし数値が 0 より大きくも小さくもなければ、スクリプトは <code>else</code> 文を使用して数値がゼロであることを出力します。</p><p>実際に動作を見てみましょう🚀</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/07/test-odd.gif" class="kg-image" alt="test-odd" width="913" height="518" loading="lazy"></figure><!--kg-card-begin: html--><h2 id="looping-and-branching-in-bash">Bash におけるループと分岐</h2><!--kg-card-end: html--><!--kg-card-begin: html--><h3 id="while-loop">While ループ</h3><!--kg-card-end: html--><p>While ループは条件を確認し、条件が <code>true</code> の間ループします。ループの実行を制御するために、カウンター文を提供する必要があります。</p><p>以下の例では、<code>(( i += 1 ))</code> がカウンター文であり、<code>i</code> の値を増やします。このループはちょうど 10 回実行されます。</p><figure class="kg-card kg-code-card"><pre><code class="language-bash">#!/bin/bash
i=1
while [[ $i -le 10 ]] ; do
   echo "$i"
  (( i += 1 ))
done</code></pre><figcaption>10 回繰り返す While ループ</figcaption></figure><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/07/image-187.png" class="kg-image" alt="image-187" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2024/07/image-187.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2024/07/image-187.png 630w" width="630" height="266" loading="lazy"></figure><!--kg-card-begin: html--><h3 id="for-loop">For ループ</h3><!--kg-card-end: html--><p><code>for</code> ループも、<code>while</code> ループと同様に、特定の回数だけステートメントを実行することができます。それぞれのループは構文と使用方法が異なります。</p><p>以下の例では、ループは 5 回繰り返されます。</p><figure class="kg-card kg-code-card"><pre><code class="language-bash">#!/bin/bash

for i in {1..5}
do
    echo $i
done</code></pre><figcaption>5 回繰り返す For ループ</figcaption></figure><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2024/07/image-186.png" class="kg-image" alt="image-186" width="580" height="150" loading="lazy"></figure><!--kg-card-begin: html--><h3 id="case-statements">Case 文</h3><!--kg-card-end: html--><p>Bash では、case 文を使用して、与えられた値をパターンのリストと比較し、最初にマッチしたパターンに基づいてコードブロックを実行することができます。Bash における case 文の構文は以下の通りです:</p><figure class="kg-card kg-code-card"><pre><code class="language-bash">case expression in
    pattern1)
        # code to execute if expression matches pattern1
        ;;
    pattern2)
        # code to execute if expression matches pattern2
        ;;
    pattern3)
        # code to execute if expression matches pattern3
        ;;
    *)
        # code to execute if none of the above patterns match expression
        ;;
esac
</code></pre><figcaption>case 文の構文</figcaption></figure><p>ここでは、「expression」は比較したい値であり、「pattern1」、「pattern2」、「pattern3」などが比較対象にしたいパターンです。</p><p>二重のセミコロン ";;" は、各パターンに対して実行するコードブロックを区切ります。アスタリスク "*" はデフォルトのケースを表し、指定されたパターンのどれも一致しない場合に実行されます。</p><p>例を見てみましょう。</p><figure class="kg-card kg-code-card"><pre><code class="language-bash">fruit="apple"

case $fruit in
    "apple")
        echo "This is a red fruit."
        ;;
    "banana")
        echo "This is a yellow fruit."
        ;;
    "orange")
        echo "This is an orange fruit."
        ;;
    *)
        echo "Unknown fruit."
        ;;
esac
</code></pre><figcaption>case 文の例</figcaption></figure><p>この例では、「fruit」の値が「apple」であるため、最初のパターンが一致し、「This is a red fruit.」と出力するコードブロックが実行されます。もし "fruit" の値が代わりに "banana" であれば、2 番目のパターンが一致し、「This is a yellow fruit.」と出力するコードブロックが実行されます。そして、「fruit」の値が指定されたどのパターンにも一致しない場合は、デフォルトのケースが実行され、「Unknown fruit.」と出力されます。</p><!--kg-card-begin: html--><h2 id="how-to-schedule-scripts-using-cron">cron を使用したスクリプトのスケジュール設定方法</h2><!--kg-card-end: html--><p>Cron は、Unix 系オペレーティングシステムで利用可能なジョブスケジューリングの強力なユーティリティです。cron を設定することで、日次、週次、月次、または特定の時間ベースで自動ジョブを設定することができます。cron が提供する自動化機能は、Linux システム管理において重要な役割を果たします。</p><p>以下は cron をスケジュールするための構文です:</p><pre><code class="language-bash"># Cron job example
* * * * * sh /path/to/script.sh</code></pre><p>この <code>*</code> は、それぞれ分、時、日、月、曜日を表します。</p><p>以下は cron ジョブをスケジュールするいくつかの例です。</p><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th>スケジュール</th>
<th>説明</th>
<th>例</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>0 0 * * *</code></td>
<td>毎日真夜中にスクリプトを実行する</td>
<td><code>0 0 * * * /path/to/script.sh</code></td>
</tr>
<tr>
<td><code>*/5 * * * *</code></td>
<td>5 分ごとにスクリプトを実行する</td>
<td><code>*/5 * * * * /path/to/script.sh</code></td>
</tr>
<tr>
<td><code>0 6 * * 1-5</code></td>
<td>月曜日から金曜日の朝 6 時にスクリプトを実行する</td>
<td><code>0 6 * * 1-5 /path/to/script.sh</code></td>
</tr>
<tr>
<td><code>0 0 1-7 * *</code></td>
<td>毎月最初の 7 日間にスクリプトを実行する</td>
<td><code>0 0 1-7 * * /path/to/script.sh</code></td>
</tr>
<tr>
<td><code>0 12 1 * *</code></td>
<td>毎月 1 日の正午にスクリプトを実行する</td>
<td><code>0 12 1 * * /path/to/script.sh</code></td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><h3 id="crontab-">crontab を使用する</h3><p><code>crontab</code> ユーティリティは、cron ジョブを追加および編集するために使用されます。</p><p><code>crontab -l</code> は特定のユーザーに予定されているスクリプトのリストを表示します。</p><p><code>crontab -e</code> を使用して cron を追加および編集できます。</p><p><a href="https://www.freecodecamp.org/news/cron-jobs-in-linux/">他の記事で cron ジョブについて詳しく読む</a>ことができます。</p><!--kg-card-begin: html--><h2 id="how-to-debug-and-troubleshoot-bash-scripts">Bash スクリプトのデバッグとトラブルシューティング方法</h2><!--kg-card-end: html--><p>デバッグとトラブルシューティングは、どんな Bash スクリプトの作成者にとっても重要なスキルです。Bash スクリプトは非常にパワフルですが、エラーや予期しない動作が発生することもあります。このセクションでは、Bash スクリプトのデバッグとトラブルシューティングのためのいくつかのヒントやテクニックについて説明します。</p><h3 id="set-x-"><code>set -x</code> オプションを設定する</h3><p>Bash スクリプトをデバッグするための最も有用なテクニックの 1 つは、スクリプトの先頭で <code>set -x</code> オプションを設定することです。このオプションを設定すると、Bash はデバッグモードが有効になり、実行する各コマンドの先頭に <code>+</code> 記号を付けて端末に出力します。これは、スクリプト内でどこでエラーが発生しているかを特定するのに非常に役立ちます。</p><pre><code class="language-bash">#!/bin/bash

set -x

# Your script goes here
</code></pre><h3 id="--5">終了コードを確認する</h3><p>Bash がエラーに遭遇すると、そのエラーの性質を示す終了コードが設定されます。直近で実行したコマンドの終了コードは、<code>$?</code> 変数を使用して確認できます。値が <code>0</code> の場合、成功を示し、それ以外の値はエラーを示します。</p><pre><code class="language-bash">#!/bin/bash

# Your script goes here

if [ $? -ne 0 ]; then
    echo "Error occurred."
fi
</code></pre><h3 id="echo-"><code>echo</code> 文を使用する</h3><p>Bash スクリプトをデバッグする別の有用なテクニックは、コード全体に <code>echo</code> 文を挿入することです。これにより、どこでエラーが発生しているかや変数に渡されている値を特定するのに役立ちます。</p><pre><code class="language-bash">#!/bin/bash

# Your script goes here

echo "Value of variable x is: $x"

# More code goes here
</code></pre><p><code>set -e</code> オプションを使用する</p><p>スクリプト内の任意のコマンドが失敗した場合にスクリプトを直ちに終了させたい場合は、<code>set -e</code> オプションを使用できます。このオプションにより、スクリプト内のどのコマンドが失敗しても Bash はエラーで終了し、スクリプト内のエラーを特定して修正することが容易になります。</p><pre><code class="language-bash">#!/bin/bash

set -e

# Your script goes here
</code></pre><h3 id="-cron-">ログを確認して cron のトラブルシューティングを行う</h3><p>ログファイルを使用して cron のトラブルシューティングを行うことができます。スケジュールされたすべてのジョブについて、ログが保持されています。特定のジョブが意図通りに実行されたかどうか、ログを確認して検証することができます。</p><p>Ubuntu や Debian の場合、<code>cron</code> ログは次の場所にあります:</p><pre><code class="language-bash">/var/log/syslog</code></pre><p>他のディストリビューションでは場所が異なる場合があります。</p><p>cron ジョブのログファイルは次のようになっているでしょう:</p><figure class="kg-card kg-code-card"><pre><code class="language-bash">2022-03-11 00:00:01 Task started
2022-03-11 00:00:02 Running script /path/to/script.sh
2022-03-11 00:00:03 Script completed successfully
2022-03-11 00:05:01 Task started
2022-03-11 00:05:02 Running script /path/to/script.sh
2022-03-11 00:05:03 Error: unable to connect to database
2022-03-11 00:05:03 Script exited with error code 1
2022-03-11 00:10:01 Task started
2022-03-11 00:10:02 Running script /path/to/script.sh
2022-03-11 00:10:03 Script completed successfully</code></pre><figcaption>cron ログ</figcaption></figure><!--kg-card-begin: html--><h2 id="conclusion">結論</h2><!--kg-card-end: html--><p>この記事では、まずターミナルへのアクセス方法といくつかの基本的な Bash コマンドの実行方法を説明しました。また、Bash シェルの概要についても学びました。ループや条件分岐を使用したコードの分岐についても簡単に見てきました。最後に、cron を使用したスクリプトの自動化とそのトラブルシューティング手法についても述べました。</p><!--kg-card-begin: html--><h3 id="resources-for-learning-more-about-bash-scripting">Bash スクリプトに関するさらなる学習リソース</h3><!--kg-card-end: html--><p>Bash スクリプティングの世界をさらに深く掘り下げたい場合は、freeCodeCamp による Linux に関する 6 時間の動画講座をお勧めします。</p><figure class="kg-card kg-embed-card" data-test-label="fitted">
        <div class="fluid-width-video-container">
          <div style="padding-top: 56.49999999999999%;" class="fluid-width-video-wrapper">
            <iframe width="200" height="113" src="https://www.youtube.com/embed/sWbUDq4S6Y8?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" title="Introduction to Linux – Full Course for Beginners" name="fitvid0"></iframe>
          </div>
        </div>
      </figure><p>このチュートリアルで学んだ中で一番好きなことは何ですか？また、この<a href="https://zaira_.bio.link/">プラットフォーム</a>で私とつながることもできます。📧</p><p>次のチュートリアルでお会いしましょう。楽しいコーディングを😁</p><p>バナー画像のクレジット: <a href="https://www.freepik.com/free-vector/hand-drawn-flat-design-devops-illustration_25726540.htm#query=programmer%20linux&amp;position=4&amp;from_view=search&amp;track=ais">Freepik</a> による画像</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ フォルダ削除コマンド: Windows でファイルやフォルダを削除する方法 ]]>
                </title>
                <description>
                    <![CDATA[ 何か操作をする時、コマンドラインから実行する方が素早く操作できることがあります。 このチュートリアルでは、コマンドプロンプトの開き方、基本的なコマンドやフラグ、コマンドプロンプトからファイルやフォルダーを削除する方法を説明します。 すでに基本の DOS コマンドを使い慣れている場合は途中までスキップしても構いません。 コマンドプロンプトを開く方法 コマンドプロンプトを開くには、Windows キーを押し、「cmd」と入力します。 次に「管理者として実行 (Run as Administrator)」をクリックします。 すると、コマンドプロンプトのウィンドウが管理者権限で開きます。 コマンドプロンプトウィンドウのスクリーンショットコマンドプロンプトを管理者権限で開くことができない場合は、「管理者として実行」の代わりに「開く (Open)」をクリックし、通常のコマンドプロンプトを開いてください。 管理者権限かどうかによる違いは、一部の保護されたファイルを削除できない可能性があることです。ほとんどの場合、問題になることはありません。  del コマンドでファイルを削除する方法 ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/cmd-delete-folder-how-to-remove-files-and-folders-in-windows/</link>
                <guid isPermaLink="false">621b294d4b80e704f3eb626a</guid>
                
                    <category>
                        <![CDATA[ Windows 10 ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Windows ]]>
                    </category>
                
                    <category>
                        <![CDATA[ command ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ まつだようこ ]]>
                </dc:creator>
                <pubDate>Sun, 03 Apr 2022 23:40:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2022/02/5fc9bc71e6787e098393991d.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/cmd-delete-folder-how-to-remove-files-and-folders-in-windows/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">cmd Delete Folder – How to Remove Files and Folders in Windows</a>
      </p><p>何か操作をする時、コマンドラインから実行する方が素早く操作できることがあります。</p><p>このチュートリアルでは、コマンドプロンプトの開き方、基本的なコマンドやフラグ、コマンドプロンプトからファイルやフォルダーを削除する方法を説明します。</p><p>すでに基本の DOS コマンドを使い慣れている場合は<a href="#how-to-delete-files-with-the-del-command">途中までスキップしても構いません。</a></p><h2 id="-">コマンドプロンプトを開く方法</h2><p>コマンドプロンプトを開くには、Windows キーを押し、「cmd」と入力します。</p><p>次に「管理者として実行 (Run as Administrator)」をクリックします。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/run-command-prompt-as-administrator.jpg" class="kg-image" alt="run-command-prompt-as-administrator" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/run-command-prompt-as-administrator.jpg 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/run-command-prompt-as-administrator.jpg 840w" sizes="(min-width: 720px) 720px" width="840" height="689" loading="lazy"></figure><p>すると、コマンドプロンプトのウィンドウが管理者権限で開きます。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/command-prompt-new-window.jpg" class="kg-image" alt="command-prompt-new-window" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/command-prompt-new-window.jpg 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/command-prompt-new-window.jpg 994w" sizes="(min-width: 720px) 720px" width="994" height="640" loading="lazy"><figcaption>コマンドプロンプトウィンドウのスクリーンショット</figcaption></figure><p>コマンドプロンプトを管理者権限で開くことができない場合は、「管理者として実行」の代わりに「開く (Open)」をクリックし、通常のコマンドプロンプトを開いてください。</p><p>管理者権限かどうかによる違いは、一部の保護されたファイルを削除できない可能性があることです。ほとんどの場合、問題になることはありません。</p><!--kg-card-begin: html--><h2 id="how-to-delete-files-with-the-del-command">
  <code>del</code> コマンドでファイルを削除する方法
</h2><!--kg-card-end: html--><p>コマンドプロンプトを開いたら、<code>cd</code> コマンドでディレクトリを変更し、ファイルがある場所に移動します。</p><p>この記事では、例としてデスクトップに「Test Folder」というディレクトリを用意しました。コマンド <code>tree /f</code> を使うと、ネストされているすべてのファイルとフォルダーをツリー表示で見ることができます。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/command-prompt-tree.jpg" class="kg-image" alt="command-prompt-tree" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/command-prompt-tree.jpg 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/command-prompt-tree.jpg 996w" sizes="(min-width: 720px) 720px" width="996" height="643" loading="lazy"></figure><p>ファイルを削除するには、次のコマンドを使用します: <code>del "&lt;filename&gt;"</code></p><p>例えば <code>Test file.txt</code> を削除するには <code>del "Test File.txt"</code> を実行します。</p><p>ファイル削除の確認メッセージが表示された場合は、「y」を入力してエンターを押してください。</p><p><strong>注:</strong> <code>del</code> コマンドで削除されたファイルは元に戻すことができません。このコマンドを使用する際は、使う場所、使い方に十分注意してください。</p><p>その後 <code>tree /f</code> を実行すると、ファイルが削除されたことを確認できます。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/del-tree-check.jpg" class="kg-image" alt="del-tree-check" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/del-tree-check.jpg 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/del-tree-check.jpg 993w" sizes="(min-width: 720px) 720px" width="993" height="620" loading="lazy"></figure><p>もう一つ、役立つ情報をお教えします。コマンドプロンプトには基本的なオートコンプリート機能があります。<code>del test</code> とだけ入力し、Tab キーを押すと、コマンドプロンプトが自動的に <code>del "Test File.txt"</code> と入力してくれます。</p><h3 id="del-"><code>del</code> コマンドでファイルを強制的に削除する方法</h3><p>読み取り専用に設定されているファイルの場合、それを <code>del</code> コマンドで削除しようとすると下記のエラーが表示されます。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/read-only-error.jpg" class="kg-image" alt="read-only-error" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/read-only-error.jpg 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/read-only-error.jpg 994w" sizes="(min-width: 720px) 720px" width="994" height="622" loading="lazy"></figure><p>このエラーを回避するには、 <code>/f</code> フラグを使用してファイルを強制的に削除できます。例えば <code>del /f "Read Only Test File.txt"</code> のようにします。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/del-force-flag.jpg" class="kg-image" alt="del-force-flag" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/del-force-flag.jpg 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/del-force-flag.jpg 995w" sizes="(min-width: 720px) 720px" width="995" height="627" loading="lazy"></figure><h2 id="rmdir-"><code>rmdir</code> コマンドでフォルダーを削除する方法</h2><p>ディレクトリ (フォルダー) を削除するには、<code>rmdir</code> または <code>rd</code> コマンドを使用します。どちらのコマンドも同じ働きをしますが、ここではコマンド名から意味が分かりやすい <code>rmdir</code> を使用しましょう。</p><p>またこのチュートリアルでは、以降「ディレクトリ」と「フォルダー」どちらの用語も使用します。「フォルダー」の方が比較的新しく、初期のデスクトップ GUI で使用され一般的になった用語ですが、フォルダーもディレクトリも基本的には同じ意味です。</p><p>ディレクトリを削除するには、コマンド <code>rmdir &lt;directory name&gt;</code> を使用します。</p><p><strong>注:</strong> <code>rmdir</code> コマンドで削除されたディレクトリは元に戻すことができません。このコマンドを使用する際は、使う場所、使い方に十分注意してください。</p><p>ここではディレクトリ「Subfolder」を削除したいので、コマンド <code>rmdir Subfolder</code> を使用します。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/directory-not-empty.jpg" class="kg-image" alt="directory-not-empty" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/directory-not-empty.jpg 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/directory-not-empty.jpg 993w" sizes="(min-width: 720px) 720px" width="993" height="622" loading="lazy"></figure><p>しかし、前述の内容を思い返してみると、Subfolder ディレクトリには「Nested Test File」という名前のファイルがあります。</p><p>一つのやり方として、まず Subfolder ディレクトリの中に <code>cd</code> で移動してファイルを削除し、<code>cd ..</code> コマンドで戻って、改めて <code>rmdir Subfolder</code> を実行することもできます。ですが手間がかかりますね。それにもっと多くのファイルやディレクトリがネストされていたらと考えてみてください。</p><p>そこで、<code>del</code> コマンドと同様に便利なフラグがあります。これを使うと素早く簡単に実行できます。</p><h3 id="rmdir-s-"><code>rmdir</code> と一緒に <code>/s</code> フラグを使う方法</h3><p>ネストされたファイルとサブディレクトリを含め、ディレクトリ全体を削除するには、<code>/s</code> フラグを使用します。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/02/rmdir-s-flag.jpg" class="kg-image" alt="rmdir-s-flag" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/02/rmdir-s-flag.jpg 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/02/rmdir-s-flag.jpg 995w" sizes="(min-width: 720px) 720px" width="995" height="622" loading="lazy"></figure><p>ディレクトリ削除の確認メッセージが表示されたら、「y」と入力し、エンターを押してください。</p><p>これで完了です！Windows コマンドプロンプトでファイルやフォルダーを削除する方法については以上です。</p><p>紹介したコマンドはすべて PowerShell でも動作するはずです。PowerShell は、基本的にはコマンドプロンプトのバージョン 2.0 のようなものです。また PowerShell には、Mac/Linux コマンドラインのユーザーにとってなじみのある <code>ls</code> や <code>clear</code> などがエイリアスとして設定されています。</p><p>この記事で紹介したコマンドが役に立ちましたか？他にも便利なコマンドがありますか？ぜひ Twitter で教えてください。</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
