
現在、solarisの吐き出すログの自動バックアップshellを運用しています。そのshellの内容は
ifでディレクトリ内存在確認後、*でtarに固める、というもので、
if [ -s $abc/* ]; then
cd $abc
tar -cvf abc_`date "+%Y%m%d"`.tar *
という内容なのですが、 if [ -s ・・・
の存在確認の時点でファイルは実際に存在するのに
存在を認識しない場合があるのです。。
ディレクトリ内のファイルの実行権を変えても認識せず、
たとえば認識しないディレクトリの中に「a」というファイルを
作って再度シェルを流してみると、今度は認識します。しかし削除するとしなくなります。また、認識しないファイルのmvで変名してやってみるとうまくいきます。
何が問題なのでしょうか?ファイルの存在確認において、認識しない場合というのがあるのでしょうか?
お助けください!よろしくお願いします。
No.3
- 回答日時:
>if [ `ls $abc | wc -l` -gt 0 ]; then
空のディレクトリでも、
./
../
この二つはカウントされるので
if [ `ls $abc | wc -l` -gt 2 ]; then
の方が良いかも。
そうなんですか。。??
ひょっとしてできないときもあるかもしれないんですね。。
ちょっと慎重に調べつつ運用していこうと思います。
ありがとうございました!参考にさせていただきます!
No.1
- 回答日時:
> $abc/*
このワイルドカードによって、マッチするファイルが無い場合、
[ -s $abc/* ]
は
[ -s ]
にとなり、シンタックス・エラーを引き起こします。逆に二つファイルがある場合、例えば
[ -s foo bar ]
となって、これもシンタックス・エラーを引き起こします。
結局、この書き方だと、ファイルが一つだけ存在する時しか、うまく動かないでしょう。
ありがとうございました。
シンタックスエラーですか。。よく耳にはするんですが。。まだまだ勉強がたりないようです(笑
ワイルドカードという言葉も難しいようで、実は簡単なんですね。
参考になりました!ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイル名で / (スラッシュ...
-
「ドット(.)」と「¥」の意味...
-
linuxコマンド mkdirでディレ...
-
拡張子.dどういう意味
-
シェルスクリプトを教えてください
-
7zを使うとフォルダの中身がす...
-
計算が実行されません。mv:照合...
-
"cp -a"と"cp -r"の違い
-
Linuxコマンドについて
-
2TBのUSBメモリを2000円ほどで...
-
ホームページのディレクトリを...
-
#./configureの時点でダメです。
-
LinuxでSGID設定する際、2775と...
-
SAMBA上に書き込んだファイルの...
-
FTPコマンドのCDについて
-
DVDでAUDIO_TSが無い!?
-
/(スラッシュ)で区切ったフル...
-
ディレクトリ内に作成できる最...
-
プログラム資産ってなんですか
-
zorin os lite 15 のデスクトッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル名で / (スラッシュ...
-
ftpのmgetコマンドの自分の格納...
-
7zを使うとフォルダの中身がす...
-
拡張子.dどういう意味
-
「照合パターンに合いません」...
-
make時に出てきたエラーメッセ...
-
"cp -a"と"cp -r"の違い
-
FTPコマンドのCDについて
-
linuxコマンド mkdirでディレ...
-
バッチファルの置き場所
-
scpによるデータ転送後、ディレ...
-
Linuxコマンドについて
-
シンボリックリンクについて
-
FTPでPUTできない原因は何?
-
zorin os lite 15 のデスクトッ...
-
ホームページのディレクトリを...
-
「ドット(.)」と「¥」の意味...
-
2TBのUSBメモリを2000円ほどで...
-
/(スラッシュ)で区切ったフル...
-
Minecraftにforgeを入れたら、...
おすすめ情報