OS は Debian 7.6 ですが、
~/Desktop の直下に 001.txt を配置しているのですが、
$ cd ~/Desktop
の後に次のコマンドを打つと
$ find . -maxdepth 10 -name *001*
./001.txt
と、ちゃんと見つかってくれます。
ちなみに
-maxdepth 10
は念のためにつけておいたものです。
/media/8G でマウントされているUSBメモリの直下に 001.txt を配置していても
$ cd /media/8G
の後に
$ find /media/8G -maxdepth 10 -name *001*
$ find . -maxdepth 10 -name * | grep 001
$ find . -maxdepth 10 -name "*" | grep 001
のいずれを試しても、001.txt を見つけてくれません。
なぜこうなるのかサッパリわかりません。
どうしたらいいかお教え下さい。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
コマンドライン上の * は特別にファイルグロブの意味になっています。
何かファイルのあるディレクトリで、
echo *
すると、意味がわかると思います。
すべてのファイル名にマッチするので、配下のファイル名がすべて表示されます。
したがって、ファイルグロブの意味でなく、コマンド固有の意味にしたいなら、
クォートしてエスケープする必要があります。
echo '*'
のように。
質問の場合は、最後のは上手くいくはずと思いますが、
find . -name '*001*'
とすれば良いのでは、と思います。
回答ありがとうございます。
回答が付いた時のメール通知をしていたつもりでしたが
オフになっていましたようで、
お礼をつけるのが遅くなり申し訳ありません。
おかげさまで原因がよく理解できました。
エスケープのことは全然存じておりませんでした。
No.2 の方の所にも書いてますが、
最後のが今はうまく行っています。
これは訳が分かりません。
No.2
- 回答日時:
set -x
とすると、実際に実行するコマンドが表示されるようになります。
> ちゃんと見つかってくれます
というのは「たまたま」です。
~/Desktop で
touch 0012.txt
の後で
find . -maxdepth 10 -name *001*
とやってみてください。エラーになるはずです。
> find . -maxdepth 10 -name "*" | grep 001
普通に考えたら、これは成功しそうです。
ちゃんとマウントできていますか?
|grepを消してfindだけにしたり、 ls -R したりしたときに、ファイル一覧が出力されますか?
回答ありがとうございます。
回答が付いた時のメール通知をしていたつもりでしたが
オフになっていましたようで、
お礼をつけるのが遅くなり申し訳ありません。
$ cd ~/Desktop/
$ touch 0012.txt
$ find . -maxdepth 10 -name 001.txt
./001.txt
$ find . -maxdepth 10 -name *001*
find: paths must precede expression: 0012.txt
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
確かに妙なメッセージが出ますね。
$ cd /media/8G
$ find . -maxdepth 10 -name "*" | grep 001
./001.txt
なぜか、今これを試すときちんと見つけてくれました。
find . -maxdepth 10 -name "*"
ls -R
も言わずもがなです。
No.1
- 回答日時:
find . -maxdepth 10 -name *001*
が何を意味するか, わかっていますか?
あと, 確認ですが
ls /media/8G/001.txt
の結果はどうなっていますか?
回答ありがとうございます。
回答が付いた時のメール通知をしていたつもりでしたが
オフになっていましたようで、
お礼をつけるのが遅くなり申し訳ありません。
.
は現在のディレクトリで、
-maxdepth 10
は10階層の深さまで、ですが
回答No.3 の方が書かれていることが分かっておらず、
-name *001*
はファイル名に「001」を含む全てのもの、と思っておりました。
ちなみに
$ ls /media/8G/001.txt
/media/8G/001.txt
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- UNIX・Linux ワイルドカードの使い方 4 2023/08/08 20:51
- フリーソフト Googleスプレッドシートで特定の言葉が含まれる行の色分けをしたいのですが 4 2022/04/30 15:29
- UNIX・Linux ブレース展開の使い方での質問です 2 2023/07/15 16:06
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- その他(プログラミング・Web制作) findコマンドでのグロッピング 4 2022/07/04 17:51
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- その他(プログラミング・Web制作) pythonのWebスクレイピングでfind_allだとurlがNoneに 4 2022/04/17 18:21
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/04 12:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
シェルスクリプトでエラーが出ます
-
【DOSコマンド】for文の中で変...
-
バッチで特定文字が含まれる先...
-
Linuxで*をつかってファイル移...
-
cshでfindした一覧をタイムスタ...
-
unixのdiffコマンドの動作について
-
○行目から□行目だけを表示する...
-
Windowsコマンドラインで文字列...
-
UNIXで、ディレクトリを比較し...
-
BATファイルによるfcコマンドで...
-
dosバッチを使用して昇順に
-
スラッシュ"/"を削除したい
-
del
-
TOPコマンドで表示するCPU使用...
-
Dirコマンドでフォルダ内ファイ...
-
スクリプトのエラー「unexpecte...
-
エクセルの表にヘンな枠が・・・
-
bashでシングルクォート内の変...
-
batである文字列内に特定の文字...
-
SONYの音楽ソフト「x-アプリ」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
シェルスクリプトでエラーが出ます
-
バッチで特定文字が含まれる先...
-
【Linux】findコマンドの表示順
-
Linuxで*をつかってファイル移...
-
【DOSコマンド】for文の中で変...
-
renameコマンドでファイル名か...
-
*.txtファイルの最終行だけ参照...
-
スラッシュ"/"を削除したい
-
CentOS/リダイレクションに改行...
-
UNIXで、ディレクトリを比較し...
-
DOSでテキストファイルの中のあ...
-
ファイルの先頭に文字を追加す...
-
○行目から□行目だけを表示する...
-
標準出力とリダイレクトを同時...
-
OSXで常に最後に表示される文字...
-
sedで置換した値を変数にセット...
-
windows7でmingwのgrepで漢字の...
-
コマンドプロンプト net user...
-
Windowsコマンドラインで文字列...
-
ファイルリストを印刷したい。
おすすめ情報