- ベストアンサー
シェルスクリプト中でシンボリックリンクのリンク先を比較したい
シェルスクリプト中で2つのシンボリックリンクのリンク先を確実に比較する方法を考えています。 当初ls -lの出力を比較してやろうと思ったのですが、リンク先の情報はls -lの最後のカラムにあるため、 万一ユーザー名やファイル名に空白が混じっていた場合、リンク先ではない他の情報を比較してしまうのです。 そこで、リンク先を確認する専用のコマンドがシェルに用意されているかも知れないと思い、質問に参りました。 もしくはls -lでなく、もっと確実にリンク先情報を確認するための方法を編み出した方は教えてください。
- みんなの回答 (6)
- 専門家の回答
関連するQ&A
- シェルスクリプトだと動かない [ -L fileS ] && echo "シンボリックリンクです"
コマンドライン上で カレントディレクトリにある fileS がシンボリックリンクであるか調べる事ができるか、学習しております。コマンドライン上で [ -L fileS ] && echo "シンボリックリンクです" と打つと、動作する事を確認しました。 しかし、シェルスクリプトで(slink.sh) ======================= #!/bin/sh [ -L fileS ] && echo "シンボリックリンクです" ======================= と、同ディレクトリにスクリプトファイルを作成。 chmod ug+x slink.sh して ./slink.sh と打つと slink.sh: test: 引数が足りません。 と怒られます。 どこがどのように間違っているかわからないので ご教授いただけないでしょうか お願い致します。
- ベストアンサー
- Linux系OS
- シェルスクリプト内でのsloginの使用
複数のサーバにアップした同一ファイルについて、シェルスクリプトからsloginしてlsコマンドによる日付の目視確認をしたいと思っています。 ところが、シェルスクリプトで slogin -i 公開鍵 user@host を実行しても slogin: : Name or service not known と表示されて、コマンドが認識されないようです。 sshにしても、同様でした。 ちなみに、scpによるコピーはうまくいきます。 sloginはシェルスクリプト内で使えないのでしょうか?
- ベストアンサー
- Linux系OS
- perlスクリプト内でシェルコマンドを実行するには??
タイトル通りなのですが、perlスクリプト内でシェルコマンドを実行させる方法が分からなく、困っています。 実行したいシェルコマンドはUNIXのcrontab なのですが・・。 また、perlスクリプト内以外でシェルコマンドを実行する方法はあるのでしょうか?? どなたか分かる方いらっしゃいましたらご教授いただけると幸いです。よろしくお願いします。
- ベストアンサー
- Perl
- PHPからシェルスクリプトを実行
サーバ:XREA・CORESERVER PHPからシェルスクリプトを実行することは可能ですか? exec関数などがsafemodeでは動かないとのことなので、phpをcgiとして動かしているのですが、 どうもうまくいきません…。 というのも、lsなどのコマンドを実行しても、command not foundになってしまいます。 どなたか分かる方いらっしゃいますか?
- 締切済み
- PHP
- シェルスクリプトで古いファイルの自動削除をするには?
UNIXで以下の仕様を持つシェルスクリプトを作成しようと していますが、どうもうまくいきません。 どなたか、いい知恵を貸していただけないでしょうか? 目的: 特定のディレクトリ内にあるファイルについて、 システム日付より3日前のタイムスタンプを持つファイルを 削除する。 留意点: ・削除対象のファイルは複数存在する場合がある。 ・ファイルサイズは1件あたり 0byte-数百Mbyte となる 可能性がある。 ・ファイル名は不定。 ・スクリプトはBシェルまたはCシェルとする。 参考: ・現在使用しているOSについて ls -l でのタイムスタンプにおける出力形式は以下のとおり (デフォルト値?) ・ 9月 28日 2000年 または 10月 24日 10時45分 知っている限りのコマンドを使っていろいろやってみたんですが、 結局ダメでした。 よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- Linuxシェルスクリプトを新しいコマンドにしたい
Linux初級者です。よろしくお願いします。 OSにFedora Core 10, シェルにtcshを使用しています。 よく使用するコマンドを、まとめて一括で実行するように、 新しいコマンドを作成したくて、次のようなことをしていたのですが (1)ホームディレクトリにmybinというディレクトリを作成してPATHを通す。 (2)newbin1という以下の内容のシェルスクリプトを作成して、~/mybinに置いておく。 ================================== #!/bin/tcsh -f date #実行コマンド例1 echo $PATH #実行コマンド例2 ================================== (3)chmodコマンドでファイルに実行権限を与える。 上記のような方法で、作成したシェルスクリプト(newbin1)を PATHの通ったディレクトリ(~/mybin)に置いて、 > newbin1 とコマンドを呼び出しても、 "newbin1: コマンドが見つかりません" というエラーになってしまいます。 > which newbin1 とすると、ちゃんとファイルのパスが表示されるのですが、 *********************************************************** 自分で作成したシェルスクリプト(newbin1)を、 新しいコマンドとして認識させるにはどのようにすればよいのでしょうか。 また、そもそもシェルスクリプトを新しいコマンドにすることが 不可能だったりするんでしょうか? ************************************************************ 一括で実行したいコマンドが多い場合に、aliasで割り当てるのが大変なので、 できればaliasコマンドは使わずにできる方法を探しています。 基本的な質問かもしれませんが、よろしくお願い致します。
- ベストアンサー
- Linux系OS
- シェルスクリプト
シェルスクリプトに関しては、まったくの初心者です。 OSは、SolarisとLinuxですが、シェルスクリプトを利用して下記のような自動実行プログラムを作りたいのですが、どなたかご教授下さい。 一台のWWWサーバのログ(例:access.log)を、1日に一回(出来ましたら朝の5時)に別サーバに送信するプログラムなのですがいかがでしょうか?このとき、出来れば送信先のファイル名は、送信した日付(例:20020222.log)にしたいです。説明不足かも知れませんが、ひとまずこれでお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- シェルスクリプトをローカルで動作させるには
cronジョブが使えるレンタルサーバーを使用しており、cronジョブから起動するshスクリプトを作ろうと思っています。 そこでシェルスクリプトを簡単に書こうと思っているのですが、プログラムはphpしかわかりません。勉強するためにはローカルで実行できる環境が必要だと思っています。 ネットでよく調べてみたのですが、シェルスクリプトをローカルで動作させる方法がわかりません。コマンドプロンプトから実行できたりしないんでしょうか?
- ベストアンサー
- その他(プログラミング・開発)
- シェルスクリプトの引数について
test.sh '*.c' といったコマンドを入力した時に、 シェルスクリプト内で引数$1を受け取ったときに$1='*.c'となるのではなく、 カレントディレクトリ内にある'*.c'の正規表現にマッチするファイルが入ってしまっています。 例)カレントディレクト内にaaa.cファイルbbb.cファイルといったファイルがある時は、 $1=aaa.c bbb.cとなっています。 '*.c'の正規表現自体をシェルスクリプト内で受け取る方法はないのでしょうか? シェルはbashを使用しています。
- ベストアンサー
- その他(プログラミング・開発)
- シェルスクリプト 自身のファイルパスを取得する方法
基本的なことかもしれないのですが、教えて下さい。 シェルスクリプトをLinuxで作成しています。 シェルスクリプトを実行して、実行したスクリプトまでの絶対パスを取得したいのですが、方法がわかりません。 いろいろ調べて、 dirname $0 という方法で出来るような記述も見つけたのですが、$0ではスクリプト名を取得することしか出来ず、ファイルパスを取得することが出来ませんでした。 OS : Linux カーネル : 2.6 です。 他に必要な情報があれば教えて下さい。 よろしくお願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
お礼
Leanさん、ご返信ありがとうございます。 tetexをインストールするには あらかじめdialogとtetex-fontsをインストールしておく必要があるようです。 tetexを含め、この3つのRPMをインストールしたら見事readlinkが使えるようになりました。 これで、簡単にリンク先を確認できるようになりました。 そして、便利なサイトのご紹介ありがとうございます。 日本語が無いのが少々残念ですが、 このサイトでは、コマンド名を入力すると、過去版を含めた各ディストリビューション用のRPMが検索できるのですね! しかも、それがそのまま入手先のアドレスになっていて、簡単にダウンロードできてしまうとは! トップページをお気に入りに登録しました。 これで、コマンド名さえ分かれば簡単にRPM名を確認することができます。 肝心なコマンド名が分からない場合は利用できませんが。。。