• ベストアンサー

拡張子

cygwinのコンソールで「ls」と入力すると、 ディレクトリは青色で、ファイルは緑色で表示されます。 ファイルが表示される色を、拡張子毎に変更することは出来るのでしょうか?(ファイル管理を容易にするため) 以上、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#136147
noname#136147
回答No.4

手元にLinuxしかないので、詳しくわからないのですが、 === ~/.dir_colors ========== NORMAL 00 # global default, although everything should be something. FILE 00 # normal file DIR 01;34 # directory LINK 01;36 # symbolic link. (If you set this to 'target' instead of a # numerical value, the color is as for the file pointed to.) FIFO 40;33 # pipe SOCK 01;35 # socket DOOR 01;35 # door BLK 40;33;01 # block device driver CHR 40;33;01 # character device driver ORPHAN 40;31;01 # symlink to nonexistent file SETUID 37;41 # file that is setuid (u+s) SETGID 30;43 # file that is setgid (g+s) STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-ritable (+t,o+w) OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable EXEC 01;35 # This is for files with execute permission: ===================================== あたりが、影響していると思われます。 rwxなどのパーミッションなら、EXECでしょうか? 必要ないならば、コメントにしてみてはいかがでしょう。 NORMAL,FILE,DIRぐらいあれば良いような気がします。

atsu_niku
質問者

お礼

回答、ありがとうございます。 実行フラグが立っているファイルについて、色が緑色になるようです。 .dir_colors の↓の部分が反映されているようです。 # This is for files with execute permission: EXEC 01;32 [32] を [35] などに変えることによって、確認しました。 .dir_colors の最後に↓を追加しています。 .f 01;36 # Fortran formats .out 01;35 # Out formats .xls 01;37 # Excel formats .exe 01;34 # EXE formats .out のみ実行フラグがないために、.dir_colorsの設定が有効になります。 出来れば、拡張子毎に色づけしたいと思っています。 分かる方がいれば、回答よろしくお願いします。

atsu_niku
質問者

補足

>必要ないならば、コメントにしてみてはいかがでしょう。 コメントアウトしても、設定が反映されませんでした。

その他の回答 (3)

noname#136147
noname#136147
回答No.3

> .tcshrc に, eval `dircolors -b ~/.dir_colors` と追加しました。 tcshの場合は、 eval `dircolors -c ~/.dir_colors` です。

atsu_niku
質問者

お礼

回答、ありがとうございます。 >tcshの場合は、 >eval `dircolors -c ~/.dir_colors` >です。 入力ミスです。すいません。 eval `dircolors -c ~/.dir_colors` と記述しています。 今、調べてみると、ファイルのパーミッションが優先されて、 色が緑色になるようです。 拡張子優先にしたいと思っています。

noname#136147
noname#136147
回答No.2

出来ますよ。 dircolorsを使います。 1) 現在の設定を~/.dir_colorsファイルに保存 $ dircolos -p > ~/.dir_colors 2) ~/.dir_colorsファイルを編集する。 .avi 01;31 .exe 01;32 のように「拡張子 色番号」のような順に記述していきます。 3) 編集した~/.dir_colorsを読み込む(bashの場合) $ eval `dircolors -b ~/.dir_colors` です。 「cygwin dircolors」で検索すると情報がいっぱいありますので、 詳しくはそちらを見てみてください。

参考URL:
http://www.linux.or.jp/JM/html/gnumaniak/man1/dircolors.1.html
atsu_niku
質問者

お礼

回答、ありがとうございました。 >1) 現在の設定を~/.dir_colorsファイルに保存 >$ dircolos -p > ~/.dir_colors ホームディレクトリに, .dir_colors が出来ました。 >2) ~/.dir_colorsファイルを編集する。 .f 01;34 .out 01;34 .xls 01;34 ↑の3行を, .dir_colors に追加しました。 (仮に、青色表示させるため) >3) 編集した~/.dir_colorsを読み込む(bashの場合) .tcshrc に, eval `dircolors -b ~/.dir_colors` と追加しました。 以上のように設定すると, .out だけ反映され(青)、 .f と .xls は緑色のままです。 なぜでしょうか? 分かる方がいれば、よろしくお願いします。

  • notnot
  • ベストアンサー率47% (4847/10260)
回答No.1

lsの機能では無理です。その他の標準コマンドでも無理。 そういうプログラムを自分で作ることになりますね。

atsu_niku
質問者

お礼

回答、ありがとうございました。

関連するQ&A

  • zshで圧縮ファイルが赤く表示されません。

    基本的なシェルの質問です。 tcshからzshに変更して色々.zshrcをいじくってみたんですが、tcshやbashではターミナル上で ls をしたらディレクトリは青、実行ファイルは緑、リンクは水、圧縮ファイルは赤、などなど色とりどりだったのですが、zshでは圧縮ファイルが赤く表示されません。ディレクトリは青く表示されるのでが。。。(そういえばjpgファイルとかに付いていた紫色も見当たらないです。) .zshrc 内で alias ls="ls -F --color=auto" と入力しているのですが、これ以外に何かしなくてはいけないのでしょうか?

  • ディレクトリの内容

    環境はCygwinです。 ls -l とコマンドを打てばCygwin上にディレクトリの内容が表示されますが ls コマンドは打ち込まず, 自分で作成したプログラムで同じような動作をさせることは可能でしょうか? 作業ディレクトリ中のテキストファイルの名前をディレクトリから読み込んでCygwin上で表示させたいのですが・・・

  • cygwin(bash?)でlsしたときのディレクトリの色がパーミッションによって異なる

    .dir_colorsを編集してlsコマンドを使ったときに 表示される色を自分の好みの配色にしてcygwinを使っています. ところが,ある理由でcygwinを再インストールした後lsコマンドを使ったところ, 一部のディレクトリにのみ背景色がついてしまい, 自分が.dir_colorsで設定している色と異なった色で表示されるようになってしまいました. 調べてみたところ,ディレクトリのパーミッションが777のものに背景色がつけられているようでした.chmod 755などでパーミッションを変えると自分が指定した色で表示されるようになりました. 考えられるのは, 1:cygwinのバージョンUPでそのような仕様になった 2:再インストールで設定が変わってしまった 3:再インストール時に一部のディレクトリのパーミッションが変わってしまった の3点ぐらいかと思われます. なんとなく見づらいのでもとに戻したいのですが,これはどこかで設定変更できるのでしょうか?

  • lsコマンドの色設定が反映されない

    OSにCentOS5.7、シェルはtcshを利用しています。よろしくお願いします。 lsコマンドで表示されるファイルの色分けを変更するために、 ホームディレクトリに以下の設定ファイルを作り(~/.dir_colors)、 ######## .dir_colorsの中身 ################### NORMAL 32 FILE 32 DIR 34 OTHER_WRITABLE 32 .txt 31 ########################################### > eval `dircolors ~/.dir_colors -c` として設定を反映させたつもりだったのですが、 実際にlsを実行してみると、いくつかの.txtファイルのうち、 ちゃんと赤色(31)で表示されるものと、緑色の太字(32;01)で表示されるものがありました。 >ls -l として、実行権限を調べると、 実行権限のないテキストファイル(-rw-r--r--)が赤字で表示され、 実行権限つきのテキストファイル(-rwxr--r--)が緑太字で表示されていました。 ================================================================================ 実行権限の有無で、.dir_colors内の記述が反映される・されない、ということはあるのでしょうか? (緑太字(32;01)はそもそも.dir_colors内に記述していないのですが、lsで表示されてしまいます。) 権限の有無に関わらず、同じ拡張子名に同じ色を当てたいのですが、良い方法があればご教授お願いします。 ================================================================================

  • 拡張子について教えてください

    普段、拡張子を表示させています。 ファイル名を変更する際に、名前の変更をして半角、全角を切り替えて拡張子を入力するといった作業を短縮させたいのですが、元の拡張子を自動で挿入する事は出来ますでしょうか? 例)ファイル名「○○○.txt」→F2を押してファイル名の編集状態にしファイル名を入力「■■■」→Enterを押すと「■■■.txt」になる。 ↑のような事は出来ますか? 前のパソコンでは、初めから自動で拡張子が挿入されていたような気がするのですが、今のパソコンを使用していて「あれ?前も拡張子入力してたかな?」と思いましたので。 よろしくお願いします。

  • cygwinのコンソールをタイムアウトしないようにするには

    cygwinを使っております。 cygwinのコンソールはファイルの編集などで一定時間操作をしていないと、タイムアウトで閉じてしまい、また開きなおさなくてはなりません。ディレクトリの深いところにいたりしたらなかなかめんどうです。cygwinのコンソールがタイムアウトで閉じるまでの時間の設定はどこで行うのでしょうか?

  • cygwin bashrc エイリアスがうまくできない

    cygwinをインストールし、UNIXについて勉強しようと 「CygwinでUNIX入門 WindowsでUNIXを使う本」を見ながらやっているのですが、 P040~P041に書かれている「日本語ファイルをlsで表示するには」 でつまってしまいました。 まず、 $ls /mnt/c/Documents\ and\ Settings/cygwin/ --show-control-char と入力すると、スタートメニューやデスクトップが文字化けせずに表示されます。 毎回オプションを入力するのは大変なので、これをエイリアスにしてみようというところです。 そこで本に書いてあるとおり C:\cygwin\home\cygwin\ 内にある.bashrcファイルに alias ls="ls --show-control-chars" と入力してみます。 (実際にはviエディタを使用して入力しました) cygwinを再起動したら正しく日本語が表示されるはずが、 うまくいきませんでした。 オプションを設定していないときと同じ結果になりました。 つまり、エイリアスが機能しないです。 同様に-alオプションでも試してみましたが、うまくいきません。 何か間違っていますでしょうか?

  • リネームで拡張子を切り離したい

    ファイルネームを変更するとき、右クリックから「名前の変更」をクリックして青反転さしてファイルネームを変更しています。 このとき拡張子まで変更して慌てることが時々ありますが拡張子は変更できないように、名前と拡張子を切り離して名前のみ変更するような設定はありませんか? フリーソフトのリネームソフトでは名前と拡張子が切り離されているようですが・・・ フリーソフトの導入をせずにWindowsXPではできないのでしょうか。

  • ファイルの拡張子だけを表示したい

    ファイルの拡張子だけを表示したい こんにちは。 Linuxのコマンドについて質問です。 とあるフォルダ配下にあるファイルをfindコマンドを使い検索し、そのフォルダ配下のファイルがどのような拡張子をもっているかを表示するコマンドを考えております。 たとえば、 /home/hoge/abc.xml /home/def.java /ghi.html /jkl.html というディレクトリとファイルがあったとして、ルートディレクトリからfindで検索をかけた場合、 .xml .java .html というように拡張子だけが抜き出されて表示される(重複した拡張子はのぞく)ようなコマンドです。

  • 拡張子について

    ファイルの拡張子「m4a」を「3g2」に変更したいのですが、うまくいきません。 ファイル名の変更で、~.3g2と入力しても、~.3g2.m4aとなってしまいます。 たすけてください。