Linux:ディレクトリ内にあるファイル数を表示

Linuxディレクトリフォルダ)内にあるファイルの数がどのくらいあるのかを調べたい場合があります。

ディレクトリ内にあるファイルの数が少なければ「ls」コマンドで済むかもしれませんが、
大量にある場合は「ls」コマンドではファイル数を調べるのは大変です。

find」コマンドと「wc」コマンドを使用すれば、大量にファイルがある場合でも
簡単にファイル数を取得することが可能です。

下記にLinuxディレクトリ内にあるファイル数カウントして表示する方法をメモします。


ディレクトリ内にあるファイル数を表示

ファイル数を調べたいディレクトリを指定して、下記のように記述します。
パイプを使用して「wc -l」を指定します。

find /var/www/html/ -type f | wc -l

実行すると指定したディレクトリ内のファイル数を出力します。
サブディレクトリ内のファイル数もカウントします。

また、ディレクトリの数を調べる場合は「-type d」を指定します。

find /var/www/html/ -type d | wc -l

ディレクトリ内にファイルが大量にある場合など、総数を調べたい時に便利です。

Linux:tailコマンドでファイルの末尾の内容を表示

Linuxで指定したファイルの末尾の行を表示する場合は「tailコマンドを使用します。

tail」コマンドではオプションで表示する内容の行数バイト数を指定することができます。
また、追加された内容をリアルタイムで表示し、ファイルの監視などを行うことが可能です。

ログファイルなどを監視したい場合などは「tail」コマンドを使用するといいと思います。

Linuxtailコマンドを使用してファイル末尾の内容を表示した時の方法と
オプションの使用方法をメモします。


tailコマンド

tailコマンドは指定したファイルの末尾(行数・バイト数)の内容を表示します。
行数を指定しない場合はデフォルトで、末尾の10行を表示します。

tail [オプション] [ファイル名]

tailコマンドのオプション

-c:表示するバイト数を指定します。
-n:表示する行数を指定します。
-f:追加された内容をリアルタイムで表示します。

tailコマンドでファイルの末尾を表示

オプションを指定しない場合は下記のように記述します。
指定したファイルの末尾の10行が表示されます。

tail hoge.txt

ファイルの末尾から指定したバイト数の内容を表示する場合は「-c」で指定します。

tail -c 20 hoge.txt

ファイルの末尾から指定した行数の内容を表示する場合は「-n」で指定します。

tail -n 20 hoge.txt

tailコマンドでファイルの監視

「-f」オプションを使用するとログファイルなどの監視することができます。
リアルタイムにデータが追加されるので状況を確認する際に便利です。

tail -f /var/log/messages

「grep」を使用して検索したい文字を指定することも可能です。
下記は「test」を検索する場合です。

tail -f /var/log/messages | grep test

監視を終了する時は「Ctrl+C」で終了します。


tailコマンドはログファイルの監視をする時などに使用すると良いと思います。
リアルタイムに見ることもできるので、サーバが重い時や状況確認したい時などに便利です。

Web Service:無料で簡単にローディング画像を作成「preloaders.net」

ローディング画像を無料で簡単に作成できるWEBサービスpreloaders.net」をご紹介します。

preloaders.net」はページや画像などのデータを読込んでいる時に表示する
ローディング画像プリローダー)を作成できるサービスです。
画像の種類も豊富にあり、サイズやカラー、ローディングのスピードなど、細かい設定も可能です。

preloaders.net

preloaders_net_1

サイトの表示が重い場合などコンテンツが表示される間に使用したり、
画像を表示するまでの間にローディング画像を使用したりなど色々な場面で使用できます。

ユーザにも読込中を知らせることができるので、ユーザビリティー的にもいいと思います。

簡単にローディング画像を作成できるので、とても便利なWEBサービスです。

下記に「preloaders.net」でローディング画像プリローダー)を作成する方法をメモします。


「preloaders.net」を使用してローディング画像を作成

「preloaders.net」にアクセスします。

http://preloaders.net/

左のメニューから画像のカテゴリーを選択します。

preloaders_net_2

「Select your preloader」で使用したいローディング画像を選択します。

preloaders_net_3

サイズ、カラー、スピードなどを調整したい場合は、
下記の箇所で編集します。

preloaders_net_4

編集が終わったら、「Generate preloader」ボタンをクリックします。

preloaders_net_5

クリックすると画面の右側にプレビューが表示されるので、
OKであれば「Download Now」をクリックします。

preloaders_net_6

「Download Now」をクリックすると作成したローディング画像を
ダウンロードすることができます。


シンプルなものから可愛いものまで色々なデザインの物があるので、
ローディング画像を作成する時はおすすめのWEBサービスです。

jQuery:画面の位置を自動で調整する「windows.js」

jQueryの「windows.jsプラグインを使用してみました。
windows.js」プラグインは画面のスクロール位置自動調整してくれるプラグインです。

jquery_windows_1

スクロール位置が中途半端な場合、指定した位置まで画面が移動して自動補正します。

下記のような画面の途中でスクロールを止めます。

jquery_windows_2

指定した秒数が経過したら、位置が自動でスクロールするのです。

jquery_windows_3

windows.js」プラグインは下記よりダウンロードできます。

http://nick-jonas.github.io/windows/

下記にjQueryの「windows.jsプラグインの使用して、
画面のスクロール位置自動補正させた際の使用方法をメモします。


「windows.js」プラグインで画面位置を自動調整

JS

jQueryとwindows.jsファイルを読み込みます。
windows.jsを使用するように設定します。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script src="js/jquery.windows.js"></script>
<script type="text/javascript">
$(function() {
    $('.window').windows({
        snapping: true,
        snapSpeed: 500,
        snapInterval: 1000,
        onScroll: function(s){},
        onSnapComplete: function($el){},
        onWindowEnter: function($el){}
    });
});
</script>

snapping:自動スクロールするかを指定します。
snapSpeed:スクロールする速度を指定します。
snapInterval:自動スクロールするまでの時間を指定します。

CSS

CSSでセクションごとのbackgroundと位置を指定します。
backgroundは画像を指定してもOKです。

<style type="text/css">
html, body {
    margin: 0;
    padding: 0;
    height: 100%;
}

.window {
    width: 100%;
    height: 100%;
    position: absolute;
}

#area1 {
    background: #d5d7dd;
    top: 0%;
}

#area2 {
    background: #1babb7;
    top: 100%;
}

#area3 {
    background: #6ab29f;
    top: 200%;
}
</style>

HTML

セクションに「class=”window”」を指定します。

<section id="area1" class="window"></section>
<section id="area2" class="window"></section>
<section id="area3" class="window"></section>

上記の設定をすると、中途半端な位置にスクロールがある場合、
画面位置を自動で調整してくれるようになります。

CakePHP:データベースが更新されない時の対処方法

CakePHPで開発をしている時にデータベースの一部のデータが更新されないということがありました。

データベースのフィールドを追加し、CakePHPでデータを更新すると新しく追加したフィールドだけが更新されないのです。
しかし、他のフィールドは正常に更新されます。

どこか間違えている箇所があると思い、何度もソースを見直したのですが、原因が分からずにいました。

なので「app」配下のディレクトリを一つ一つ確認していたら、怪しいと思ったファイルを発見しました。
下記のディレクトリ内にデータベースのテーブル構造を格納するモデルキャッシュファイルがあったのです。

app/tmp/cache/models

そのキャッシュファイル削除したら正常にデータが更新されました。

忘れないように、下記にCakePHPデータベース更新されない時の対処方法をメモします。


データベースが更新されない時の対処方法

CakePHPではデータベースのテーブル構造を格納するキャッシュファイルが作成されます。
データベースのフィールドを追加した場合、キャッシュファイルが前の情報のままだとデータが正しく更新されません。

その際は下記のディレクトリのキャッシュファイルを削除します。

app/tmp/cache/models

削除すると新しいキャッシュファイルが作成され、正常に更新することができるようになります。


CakePHPでデータベースのテーブルの構造を変更した場合は、キャッシュファイルを削除するのが良いと思います。