"mkdir"コマンドでLinuxでディレクトリを作成する方法

このガイドでは、コマンドラインを使ってLinux内に新しいフォルダやディレクトリを作成する方法を説明します。

ディレクトリの作成に使用するコマンドはmkdirです。 この記事では、Linuxでディレクトリを作成し、利用可能なすべてのスイッチをカバーする基本的な方法を示します。

新しいディレクトリを作成する方法

新しいディレクトリを作成する最も簡単な方法は次のとおりです。

mkdir <フォルダ名>

たとえば、testというホームフォルダの下にディレクトリを作成する場合は、ターミナルウィンドウを開き、ホームフォルダにあることを確認します( cd〜コマンドを使用します)。

mkdirテスト

新しいディレクトリのアクセス権の変更

新しいフォルダを作成したら、特定のユーザーだけがフォルダにアクセスできるように、または一部のユーザーがフォルダ内のファイルを編集できるが、他のユーザーは読み取り専用になるようにアクセス許可を設定することができます。

最後のセクションでは、testというディレクトリを作成する方法を説明しました。 lsコマンドを実行すると、そのディレクトリの権限が表示されます。

ls -lt

チャンスはあなたがこれらのラインに沿って何かを持っていることです:

drwxr-xr-x 2オーナーグループ4096 Mar 9 19:34テスト

興味のあるビットはdrwxr-xr-xの所有者グループです

dはtestがディレクトリであることを示しています。

dの後の最初の3文字は、所有者の名前で指定されたディレクトリの所有者のアクセス許可です。

次の3文字は、グループ名で指定されたファイルのグループ権限です。 ここでもオプションはr、w、xです。 - は行方不明の許可があることを意味します。 上記の例では、グループに所属する誰もがフォルダにアクセスしてファイルを読み取ることができますが、フォルダに書き込むことはできません。

最後の3文字は、すべてのユーザーが所有するアクセス許可です。上の例に示すように、これらはグループのアクセス許可と同じです。

ファイルまたはフォルダのアクセス権を変更するには、 chmodコマンドを使用します。 chmodコマンドでは、パーミッションを設定する3つの数値を指定できます。

権限の混合を取得するには、数字を一緒に追加します。 たとえば、読み取りと実行のアクセス許可を取得するには、必要な番号は5、読み取りと書き込みのアクセス許可を取得するには6、書き込みと実行のアクセス許可を取得するには番号は3です。

chmodコマンドの一部として3つの数字を指定する必要があることを覚えておいてください。 最初の数字は所有者のアクセス許可、2番目の数字はグループのアクセス許可、最後の数字は他のユーザーのアクセス許可です。

たとえば、所有者に対して完全なアクセス許可を取得するには、グループに対する読み取りと実行のアクセス許可と、他のユーザーに対するアクセス許可がない場合は、次のように入力します。

chmod 750テスト

フォルダを所有するグループ名を変更する場合は、chgrpコマンドを使用します。

たとえば、会社のすべての会計士がアクセスできるディレクトリを作成するとします。

まず、次のように入力してグループアカウントを作成します。

groupaddアカウント

グループを作成するための適切な権限がない場合は、suコマンドを使用し 特別な権限を取得するか、有効な権限を持つアカウントに切り替える必要があります。

次のように入力して、フォルダのグループを変更できます。

chgrpアカウント<フォルダ名>

例えば:

chgrpアカウントテスト

アカウントグループ内の誰かに、読み込み、書き込み、実行のアクセス権と所有者を与えるが、他の人には読み取り専用にするには、次のコマンドを使用することができます。

chmod 770テスト

アカウントグループにユーザーを追加するには、おそらく次のコマンドを使用します。

usermod -a -G accounts

上記のコマンドは、ユーザーがアクセスできるセカンダリ・グループのリストにaccountsグループを追加します。

ディレクトリを作成してアクセス許可を同時に設定する方法

次のコマンドを使用して、ディレクトリを作成し、そのディレクトリのアクセス権を同時に設定することができます。

mkdir -m777

上記のコマンドは誰もがアクセスできるフォルダを作成します。 この種の権限で何かを作成することは非常にまれです。

フォルダと必要なすべての親を作成する

ディレクトリ構造を作成したいと考えていますが、それぞれのフォルダを作成してツリーを作成する必要はありません。

たとえば、次のように音楽用のフォルダを作成しているとします。

ロックフォルダーを作成してから、alice Cooperとqueenフォルダーを作成してから、ラップフォルダーとdr dreフォルダー、次にjazzフォルダー、次にlouisjordanフォルダーを作成する必要があります。

次のスイッチを指定することで、親フォルダがまだ存在しない場合はすべて親フォルダを作成できます。

mkdir -p

たとえば、上記のフォルダの1つを作成するには、次のコマンドを実行します。

mkdir -p〜/ music / rock / alicecooper

ディレクトリが作成されたことの確認の取得

デフォルトでは、mkdirコマンドは作成しているディレクトリが正常に作成されたかどうかを知らせません。 エラーが表示されない場合は、エラーが発生したとみなすことができます。

より詳細な出力を得て、作成された内容を知りたい場合は、以下のスイッチを使用してください。

mkdir -v

mkdir:created directory / path / to / directorynameの行に出力されます。

&#34; mkdir&#34;を使用します。 シェルスクリプトで

場合によっては、 "mkdir"コマンドをシェルスクリプトの一部として使用することもできます。 たとえば、パスを受け入れるスクリプトを見てみましょう。 スクリプトが実行されると、フォルダが作成され、 "hello"という1つのテキストファイルが追加されます。

#!/ bin / bash

mkdir $ @

cd $ @

こんにちは

最初の行は、あなたが書いたすべてのスクリプトに含まれていなければなりません。これは実際にBASHスクリプトであることを示すために使用されます。

"mkdir"コマンドは、フォルダを作成するために使用されます。 2行目と3行目の最後の "$ @"( 入力パラメータとも呼ばれます )は、スクリプトの実行時に指定した値に置き換えられます。

"cd"コマンドが指定したディレクトリに変わり、最後にtouchコマンドが "hello"という空のファイルを作成します。

あなたは自分でスクリプトを試すことができます。 これを行うには、以下の手順に従ってください:

  1. ターミナルウィンドウを開く (Altキーを押しながらTキーを押す)
  2. nano createhellodirectory.shと入力します
  3. 上記のコマンドをエディタに入力してください
  4. CTRLとOを同時に押してファイルを保存します。
  5. CTRLとXを同時に押してファイルを終了する
  6. chmod + x createhellodirectory.shと入力してアクセス権を変更します。
  7. ./createhellodirectory.shテストを入力してスクリプトを実行します。

スクリプトを実行すると "test"というディレクトリが作成され、そのディレクトリ( cd test)に変更してディレクトリリスト( ls)を実行すると、 "hello"という単一ファイルが表示されます。

今のところ良いですが、今度はステップ7をもう一度実行してみてください。

  1. フォルダが既に存在することを示すエラーが表示されます。

スクリプトを改善するためにできることはさまざまです。 たとえば、フォルダがすでに存在する場合、それが存在する限り特に気にしません。

#!/ bin / bash

mkdir -p $ @

cd $ @

こんにちは

mkdirコマンドの一部として-pを指定すると、フォルダがすでに存在する場合はエラーにはなりませんが、存在しない場合は作成されます。

タッチコマンドはファイルが存在しない場合に作成されますが、存在する場合は最後にアクセスされた日時を修正します。

touch文が次のようにファイルにテキストを書き込むecho文で置き換えられたとします。

#!/ bin / bash

mkdir -p $ @

cd $ @

echo "hello" >> hello

コマンド "./createhellodirectory.sh test"を何度も実行すると、テストディレクトリ内の "hello"というファイルが "hello"という単語とともにますます大きくなっていきます。

さて、これは意図したとおりであってもなくてもかまいませんが、今はこれが望ましい行動ではないと言いましょう。 次のようにechoコマンドを実行する前にディレクトリが存在しないことを確認するテストを書くことができます。

#!/ bin / bash

mkdir $ @ 2> / dev / null;

if [$? -eq 0]; 次に

cd $ @

echo "hello" >> hello

出口

fi

上記のスクリプトは、フォルダの作成を処理するための私の好みの方法です。 mkdirコマンドは、入力パラメータとして渡されるフォルダを作成しますが、エラー出力は/ dev / nullに送信されます(本質的にどこも意味しません)。

3行目は "mkdir"ステートメントである前のコマンドの出力ステータスをチェックし、成功した場合は "fi"ステートメントに達するまでステートメントを実行します。

これは、フォルダが作成でき、コマンドが成功した場合に必要なものをすべて実行できることを意味します。 コマンドが正常に実行されなかった場合は、別の処理をしたい場合は、次のようにelse文を入力するだけです。

#!/ bin / bash

mkdir $ @ 2> / dev / null;

if [$? -eq 0]; 次に
cd $ @
echo "hello" >> hello
出口
else
cd $ @
echo "hello">こんにちは
出口
fi

上記のスクリプトでは、mkdir文が動作する場合、echo文は "hello"というファイルの最後に "hello"という単語を送り、存在しなければ "hello"という名前の新しいファイルが作成されます。こんにちは "。

この例は、 echo "hello"> hello行を実行するだけで同じ結果を得ることができるため、特に実用的ではありません。 この例のポイントは、 "mkdir"コマンドを実行し、エラー出力を隠し、コマンドの状態をチェックして成功したかどうかを確認してから、 "mkdir"コマンドそれが成功しなかった場合は別の一連のコマンドが成功しました。