プログラミング Tips

ITエンジニアの雑記ブログ。
IT関連ニュースの考察や、プログラミングに関するTipsの備忘録として…
育児や日常の雑記帳としても、記事を投稿していきます。

プログラミングと日常生活に関する情報を発信しています。

カテゴリ:コマンド > ファイル操作

コマンド操作系の一覧


今回は、ファイルの操作に関するコマンドを説明します。
  1. ファイルやディレクトリのリンク作成
  2. カレントディレクトリの記憶
  3. ファイルの圧縮/解凍
  4. テキストファイルの生成


ファイルやディレクトリのリンク作成

Windows :"mklink [ファイル名] [対象ファイル名]"
Mac :"ln [対象ファイル名] [ファイル名]"

ファイルやディレクトリへのリンクには、
  • シンボリックリンク
  • ハードリンク
がある。リンク元を削除した場合、シンボリックリンクは無効になる。

ハードリンクは、削除前と同等に動作する。

Windowsの"mklink"はシンボリックリンクがデフォルト。

ハードリンク生成には、オプション"/h"を指定する。

一方、Macの"ln"はデフォルトがハードリンク。

シンボリックリンク生成には、オプション"-s"を指定する。

尚、ファイル名と対象ファイル名を指定する順番も

逆になるため、注意が必要。


カレントディレクトリの記憶

<スタックに保存>
Windows :"pushd [ディレクトリ名]"
Mac :"pushd [ディレクトリ名]"

<スタックから取り出し>
Windows :"popd [ディレクトリ名]"
Mac :"popd [ディレクトリ名]"

過去のカレントディレクトリを記憶しておき、新しいものから

順番に呼び出す仕組みが「ディレクトリスタック」。

"pushd"で移動するディレクトリを指定すると、

カレントディレクトリがスタックに積まれ、"popd"で呼び出す。

注意

"pushd"でディレクトリ名を省略した場合の挙動。

Windows :スタック一覧が表示
Mac :スタック上位2個のディレクトリが入れ替わる

ちなみに、Macでディレクトリスタックを表示するためには、

"dirs"コマンドを使用する。


ファイルの圧縮/解凍

<圧縮>
Windows :"compact /c [ファイル名]"
Mac :"zip [圧縮の元ファイル名] [圧縮ファイル名]"

<解凍>
Windows :"compact /u [ファイル名]"
Mac :"unzip [圧縮ファイル名]"

Windowsでは、NTFSファイルシステムの圧縮機能を使用。

圧縮と解凍は、同一コマンドでオプションを切り替えて行う。

一方Macでは、ZIP形式で圧縮・解凍を行う。

この他に、bzip2形式を扱う"bzip2"/"bunzip2"コマンド、

gzip形式を扱う"gzip"/"gunzip"コマンドもある。


テキストファイルの生成

Windows :"copy con [ファイル名]"
Mac :"echo "文字列" > [ファイル名]"

テキストファイル生成には通常テキストエディタを用いる。

Windows7 32bit版では、"edit"コマンドでMS-DOSエディタが起動されたが

64bit版ではエディタが付属していない。

よって、簡単なテキストファイルなら"copy con"で生成可能。

内容を入力した後で、最後に「Ctrl + z」とEnterキー入力で生成される。

一方Macの場合、標準出力を行う、”echo”コマンドを使って

テキストファイルの生成可能。

尚、Macには高機能エディタVimが標準搭載されるため、

"vi"/"vim"で起動する。

 

コマンド操作系の一覧


今回は、ファイルの操作に関するコマンドを説明します。
  1. ファイルの中身の表示
  2. ファイルの結合
  3. ファイルの中身の比較
  4. ファイルの検索(ファイル名)
  5. ファイルの検索(ファイル内の文字列)
  6. ファイル内の先頭or末尾のみ表示
  7. ファイル属性の設定
  8. ファイルアクセス権の設定


ファイルの中身の表示

Windows :"type [ファイル名]"
Mac :"cat [ファイル名]"

日本語のテキストファイルを扱う場合、
Windowsでは、Shif-JIS文字コード。
Macの場合は、UFT-8。

またMacの"cat"コマンドは、本来複数ファイルの内容を連結するために

用いられるコマンドですが、1つのファイルを指定すると内容を表示する

コマンドとしても利用可能です。


ファイルの結合

Windows :"copy [連結元ファイル1] + [連結元ファイル2]  [連結先ファイル]"
Mac :"cat [連結元ファイル1]  [連結元ファイル2] > [連結先ファイル]"

Windowsでのファイル連結は、"copy"コマンドと"+"を用いて行います。

一方Macでは、連結コマンド"cat"を用います。そのままでは、連結結果が

画面に表示されるのみのため、">"の後に、連結後ファイル名を指定して出力します。


ファイルの中身の比較

Windows :"fc [ファイル名1] [ファイル名2]"
Mac :"diff [ファイル名1] [ファイル名2]"

Macの場合、ファイル内容が同じか?異なるか?を判定するだけの"cmp"コマンドもあります。


ファイルの検索(ファイル名)

Windows :"dir [ファイル名] /s"
Mac :"find" [ディレクトリ名] -name '文字列'

Windowsの場合、"dir"コマンドに"/s"オプションを付与することで、

サブディレクトリをたどって検索します。

"dir"の詳細情報ではなく、ファイル名だけを検索、表示したい場合には、

"/b"オプションを付けます。

Macの場合、"find"コマンドに"-name"オプションを付与します。

ファイル名は「'」「'」でくくって指定します。

尚、WindowsもMacも、ファイル名の指定に「?」「*」などのワイルドカードも

使用できます。


ファイルの検索(ファイル内の文字列)

Windows :"find [文字列] [ファイル名]"
Mac :"grep '文字列 [ファイル名]"

テキスト名から検索するのではなく、ファイル内の内容から

文字列を検索するコマンドです。

Windowsの場合、ファイル名に「*」「?」などのワイルドカードは使えませんが、

Macではワイルドカードを用いて複数のファイルから文字列検索が可能です。


ファイル内の先頭のみ表示

Windows :被該当
Mac :"head [ファイル名]"

Windowsには該当するコマンドはありません。

Macでは、先頭10行が表示されます。

"-n"オプションを用いると、指定した行数分表示されます。


ファイル内の末尾のみ表示

Windows :被該当
Mac :"tail [ファイル名]"

先頭表示コマンドと同じくWindowsには該当コマンドするはありません。

Macでは、末尾10行が表示され、"head"コマンドと同じく、"-n"オプションで

指定行数の表示が可能です。

尚、"-f"オプションをつけると、ファイルの末尾を監視して、

内容が追加されるたびに表示するようになることから、ログ監視によく使われます。


ファイル属性の設定

Windows :"attrib [属性リスト] [ファイル名]"
Mac :"SetFile [ファイル名]"

ファイルはそれぞれ属性を持っています。

Windowsでは、
  • "+r" :読み取り専用属性
  • "+h" :隠しファイル属性
  • "+s" :システム属性
以上を設定できます。"+"を"-"へ変更すると

属性の解除ができます。

Macの場合、クリエータやファイルタイプ、作成日時、変更日時といった

ファイル属性を変更できます。


ファイルアクセス権の設定

Windows :"calcs [ファイル名] /g [ユーザ名]:[アクセス権]"
Mac :"chmod [利用権限] [ファイル名]"

Windowsで設定できるアクセス権は下記。
  • N :アクセス権なし
  • R :読み取り
  • W :書き込み
  • C :変更
  • F :フルアクセス
Macでは、ファイルのパーミッション(権限)は基本的に

UNIXの仕様を踏襲しています。



ファイル操作に関係するコマンドは以上になります。

Windowsでは非該当のコマンドも含まれていて、利用時には注意が必要です。

私は、UNIXに慣れているので、思わずWindowsに不便を感じてしまうことが多いです…

が、Windows10ではPowerShell上でUnixコマンドのサポートが開始されていますので、

今後この不便が解消されていくことを期待しています。

ではでは… 
 

コマンド操作系の一覧



前回に引き続き、ファイル・ディレクトリの操作系コマンドの説明を行います。

今回特に説明するのは、下記項目とします。
  1. ファイル名・ディレクトリ名の変更
  2. ファイルの移動
  3. ファイルの削除
  4. ファイルのコピー
  5. ディレクトリの作成
  6. ディレクトリの削除
  7. ディレクトリのコピー 
では早速、各コマンドの説明とを行います。

ファイル名・ディレクトリ名の変更

Windows :"rename [変更前の名前] [変更後の名前]"
Mac :"mv [変更前の名前] [変更後の名前]"

Windowsには、ファイルやディレクトリの名前を変更するための"rename"があります。

省略形は"ren"です。

一方Macでは、ファイル移動コマンド"mv"を用います。

WindowsもMacも名前変更後に成否メッセージが表示されないため、

Windowsでは"dir"コマンド、Macでは"ls"コマンドでファイル名を表示確認してください。


ファイルの移動

  • Windows :"move [移動元] [移動先]"
  • Mac :"mv [移動元] [移動先]"
ファイルの移動はコピーに似ていますが、移動元からファイルがなくなります。

移動先に同名のファイルがあった場合、Windowsでは上書きを確認されますが、

オプション"-y"で強制上書きも可能です。

一方Macの場合、移動先に同名ファイルがあった場合、そのまま上書きされます。

上書きしたくない場合には、オプション"-n"をつけます。確認が必要な場合には、

オプション"-i"をつけます。


ファイルの削除

  • Windows :"del [ファイル名]" or "erase [ファイル名]"
  • Mac :"rm [ファイル名]"
ファイル削除は誤操作が懸念されるので、確認するオプションをつけることを推奨します。

Windowsではオプション"/p"、Macではオプション"-i"で確認されます。

尚、Windowsでは削除したファイル名が表示されますが、Macでは表示されません。


ファイルのコピー

  • Windows :"copy [コピー元] [コピー先]"
  • Mac :"cp [コピー元] [コピー先]"
WindowsとMacのコマンドはほとんど同じです。

コピー元/先は、パス付きでファイル名を指定します。

パスを省略した場合、カレントディレクトリのファイルを省略したことになります。

Windowsの"copy"では、コピー先を省略するとカレントディレクトリにコピーされますが、

Macの"cp"では、コピー先は省略できません。

WindowsとMacの挙動の違いで注意が必要なのは、コピー先にファイルがあった場合です。

Windowsでは上書きするか確認されます(オプション"/y"で強制上書き)。

一方Macでは、何もしません(オプション”-i”で確認、オプション"-f"で強制上書き)。


ディレクトリの作成

  • Windows :"mkdir [ディレクトリ名]"
  • Mac :"mkdir [ディレクトリ名]"
WindowsとMacのコマンドは同じです。

ディレクトリ名でパスを含んで指定した場合、

Windowsではそのディレクトリも自動生成されます。

一方、Macでは途中のディレクトリは生成されません。

尚、Macではディレクトリのアクセス権設定も可能です。


ディレクトリの移動

  • Windows :"rmdir [ディレクトリ名]"
  • Mac :"rmdir [ディレクトリ名]" or "rm -rf [ディレクトリ名]"
WindowsとMacのコマンドは同じです。

ディレクトリ内が空でないとディレクトリの削除はできません。

Windowsでは、オプション"/s"をつけることで内容ごと削除可能です。

一方Macでは、"rm"コマンドにオプション"-rf"をつけることで内容ごと削除可能です。


ディレクトリのコピー

  • Windows :"xcopy [コピー元] /s [コピー先]"
  • Mac :"cp -R [コピー元] [コピー先]"
xcopyはWindowsの高機能コピーコマンドです。

オプション"/s"を指定すると、サブディレクトリ内容も含めてコピーされます。

但し、空ディレクトリはコピーされないので注意が必要です。

Macでは、"cp"コマンドにオプション"-R"を用います。

ちなみにオプション"-p"を用いるとパーミッション情報を含めてコピーされます。

コマンド操作系の一覧


ファイルやディレクトリ操作に関して、

下記一覧のコマンドを説明する。

  1. ファイル・ディレクトリの一覧表示
  2. ディレクトリ構造のツリー表示
  3. カレントディレクトリ表示
  4. カレントディレクトリ変更

ファイル・ディレクトリの一覧表示

  • Windows :"dir"
  • Mac :"ls"
ファイルとディレクトリの一覧を表示する。

ディレクトリやファイルを指定しない場合は、カレントディレクトリの内容を表示する。

ディレクトリを指定した場合、そのディレクトリの内容を表示する。

ファイル名を指定した場合、そのファイルの情報を表示する。

隠しディレクトリやファイルを含めたすべての内容を表示するためのオプションもあるため、

詳細は各コマンドのオプションを参照のこと。


ディレクトリ構造のツリー表示

  • Windows :"tree"
  • Mac :初期状態では該当コマンドなし
Windowsでは、標準で用意されていて、ディレクトリ構造をツリー上に図示する。

オプション"f"を用いると、ディレクトリに加えてディレクトリに含まれるファイルもも表示可能。

また、表示の際のけい線はデフォルト2バイトのグラフィック文字。

オプション"a"を用いると、ASCII文字の「+」「|」「-」に置き換わる。

一方Macでは、標準コマンドとして対応しておらず、外部コマンドをインストールすることで

利用可能となる。具体的には、homebrewからインストール可能である。

brew install tree


カレントディレクトリ表示

  • Windows :"chdir"
  • Mac :"pwd"
Windowsでは、ディレクトリ変更コマンドである"chdir"(短縮系 "cd")の後に

何も指定しないと、現在のディレクトリが表示される。

Macでは、ディレクトリを表示する際にホームディレクトリが「~」と

省略表示されることがあるため、pwdを使うことでフルパス表示される。

カレントディレクトリ変更

  • Windows :"cd [ディレクトリ名]"
  • Mac :"cd [ディレクトリ名]"
Windows, Macともに"cd"コマンド。

パス付きで指定したディレクトリがカレントディレクトリになる。

ディレクトリ名に".."を指定すると、1階層上のディレクトリへ移動する。

ちなみにWindowsは、デフォルトではカレントドライブとは異なるドライブへ

移動することはできないため、"/d"オプションを指定する。

注意:相違点

Windowsで"cd" + ディレクトリ名省略で実行の場合、カレントディレクトリが表示

(=Macの"pwd"コマンド相当)されるが、Macで同様のコマンドを実行すると、

ホームディレクトリへ移動となる。




次回以降は、主にファイルの操作(コピー、移動、削除、名称変更) や

ディレクトリの操作(コピー、新規作成、移動、削除、名称変更)などを

解説していく予定。 

↑このページのトップヘ

-->