質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

Q&A

1回答

12010閲覧

照合パターンに合いません のエラー

退会済みユーザー

退会済みユーザー

総合スコア0

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

0グッド

0クリップ

投稿2017/03/13 04:17

find /home/Desktop/top -name /home/Desktop/top/xxx* -print
find: 照合パターンに合いません. とエラーが出ました。

directory=$1 designatefile="/home/Desktop/top" find $directory -name "$designatefile*" -print > aaa

と書き、find /home/Desktop/top -name /home/Desktop/top/xxx* -print
と実行しました(find 文があっているのか確かめるため)
しかし、上記のエラーが出ました。
lst_two_file.sh /home/Desktop/top /home/Desktop/top/xxx と実行したときには

find: warning: Unix filenames usually don't contain slashes (though pathnames do). That means that '-name `/home/Desktop/top/xxx*'' will probably evaluate to false all the time on this system. You might find the '-wholename' test more useful, or perhaps '-samefile'. Alternatively, if you are using GNU grep, you could use 'find ... -print0 | grep -FzZ `/home/Desktop/top/xxx*''.

とエラーが出ました。
ファイルを検索したかったのですが・・・。
どう直せばいいのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ファイル「名」であってファイルへの「パス」ではないのですから、「/」が含まれることはありません。

ちょっと find でやりたいことがよくわからないのですが…… $directory を指定しているのですから、$directory からディレクトリ階層を下へ辿ります。その中で(途中のパスに関わらず)名前が○○と一致するもの を検索するのが --name オプションです。

もし厳密に /home/Desktop/top の直下であること(/home/Desktop/top/{どこかのディレクトリ}/{name} を対象としたくない)なら、

Bash

1> find $directory -name {何か} -maxdepth 0 -print

と、辿る階層の上限を0(下へ全く辿らない=指定したディレクトリしか見ない)とすればよいです。
※まあそれ以前に、ls -1 $directory {何か} でいいのですけれども

投稿2017/03/13 04:39

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問