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

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

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

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

3回答

383閲覧

指定の拡張子を調べるコマンドが知りたい

退会済みユーザー

退会済みユーザー

総合スコア0

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2021/08/07 08:24

素人質問で大変恐縮なのですが、回答お願いします。

.file の拡張子だけを検索したのですが
find .file (特定のディレクトリ)
で良いのでしょうか?

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

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

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

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

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

guest

回答3

0

ベストアンサー

このコマンドは2つ下の階層のディレクトリのファイルまで調べることはできるのでしょうか?

二つ下の階層に限定して探したいなら、findを使うまでもありません。

ls */*/*.file

投稿2021/08/07 13:38

KojiDoi

総合スコア13671

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

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

退会済みユーザー

退会済みユーザー

2021/08/07 14:36

kojiDoiさんありがとうございます! ls */*/*.file のコマンドを入力しました!2つ下の階層のディレクトリに保存しているファイルを表示できたのですが 拡張子の.fileだけを調べることができません。 他のファイルは不要で.fileだけを表示させるようにしたいのです。 manのマニュアルを使ってlsコマンドを調べているのですが 2つ階層下の指定した拡張子だけを調べるコマンドが見つけきれず困っています。 なんども素人質問に付き合って悪いのですがご教授いただけると嬉しいです。
KojiDoi

2021/08/07 14:43

はて? このコマンドで.fileで終わるファイル名だけを抽出できるはずですが?
guest

0

find <探したいディレクトリ> -name '*.file' -print

投稿2021/08/07 08:37

itagagaki

総合スコア8402

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

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

退会済みユーザー

退会済みユーザー

2021/08/07 08:55

itagakiさんありがとうございます! find <探したいディレクトリ> -name '*.file' -printを入力すると > と表示されます。 これはどういう意味なのでしょうか?
itagagaki

2021/08/07 09:00

うーん、シェルの使い方から学びましょう
itagagaki

2021/08/07 09:00

あ、Unix/Linuxですよね? それとももしかしてWindowsとかですか?
退会済みユーザー

退会済みユーザー

2021/08/07 09:42

linuxです!
KojiDoi

2021/08/07 10:53

> > > と表示されます。 おそらく引用符を入力しそこなっています。もう一度よく確認してみましょう。
KojiDoi

2021/08/07 10:55

コマンドの使い方を自力で調べる方法も知っておきましょう。 $ man find $ find --help
退会済みユーザー

退会済みユーザー

2021/08/07 13:31

find <探したいディレクトリ> -name '*.file' -print のコマンドで解決できました! このコマンドは2つ下の階層のディレクトリのファイルまで調べることはできるのでしょうか? find <ディレクトリA> <左のディレクトリの1つ下の階層ディレクトリB> -name '*.file' -print 上記のコマンドで入力してみたのですが探したいディレクトリAのファイルしか調べきれませんでした。 そのようなファイルやディレクトリはありませんと表示されています。ディレクトリAと1つ下の階層ディレクトリBの間に何かコマンドがいるのでしょうか…1時間以上調べていて心が折れそうです…
hentaiman

2021/08/07 13:35

KojiDoiさんが教えてくれたman findはちゃんと見ましたか?
KojiDoi

2021/08/07 13:37

普通にマニュアルを読んでいれば find <ディレクトリA> <左のディレクトリの1つ下の階層ディレクトリB> が文法的に間違っていることはすぐにわかりそうなものですが。
KojiDoi

2021/08/07 14:02

findで階層の深さを限定する方法は、man findすれば出てきます。
退会済みユーザー

退会済みユーザー

2021/08/07 14:14

まだ1ヶ月の素人でしてマニュアルも読んでみたのですがわからない言葉ばかりだったので理解に苦しみました。でも、なんとか頑張ってみます!
itagagaki

2021/08/07 16:28 編集

> このコマンドは2つ下の階層のディレクトリのファイルまで調べることはできるのでしょうか? たとえば find . -name '*.file' -print は、カレントディレクトリ以下のすべての階層から *.file を探します。つまり、もしあれば ./xxx.file も ./B/yyy.file も ./B/C/zzz.file も表示されます。 ですから、調べきれなかったというのはおかしいですね。find の使用法を間違ったのだと思います。 「拡張子だけを検索」という表現をされている意味がちょっとよくわからないのですが、もし *.file ではなくて「.file」という名前のファイルを探したいのなら、find . -name .file -print です。(つまり *. が要らないです。そして * をエスケープする必要がなくなるので '' で囲む必要もなくなります。このあたりについてはシェルの使い方について学んでください) 余談になりますが最後の -print は実は無くても大丈夫だったりもします。 さらに余談ですが、Linuxに「拡張子」という用語はありません。ファイル名に . を含んでいるとき、それ以降を「サフィックス」と呼んだりはしますが、MS-DOSやWindowsの「拡張子」の概念とはちょっと違います。
guest

0

投稿2021/08/07 08:25

y_waiwai

総合スコア87800

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

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

退会済みユーザー

退会済みユーザー

2021/08/07 14:14

情報共有ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問