タグ付けされた質問 「find」

ディレクトリ階層でファイルを検索する

1
Linuxのfindコマンドの動作がおかしい
最近の脆弱性の公開に続いてシステムで解決されたサービスを検索すると、findコマンドから非常に奇妙な動作が見られるようになりました。 root@localhost:/# find . -name "*systemd-resolved*" ./usr/share/man/man8/systemd-resolved.service.8.gz ./usr/share/man/man8/systemd-resolved.8.gz このコマンドは、最初の実行の出力として0または2行を返します。しかし、2回目にコマンドを実行すると、次のようになります。 root@localhost:/# find . -name "*systemd-resolved*" ./usr/share/man/man8/systemd-resolved.service.8.gz ./usr/share/man/man8/systemd-resolved.8.gz ./lib/systemd/systemd-resolved ./lib/systemd/system/systemd-resolved.service.d ./lib/systemd/system/systemd-resolved.service これは、初めて「find」が実際にすべてを見つけるわけではないことを意味します。また、これは一度だけ発生します。次にコマンドを実行すると、正しい出力が表示されます。Debian 8(jessie)がインストールされている他のシステムでこれをチェックしました。カーネル4.9+を使用している場合、この正確な問題は常に発生しますが、カーネル3.16を使用するシステムでは発生しません。 システムの再起動後、このすべてが再び起こります。ただし、個々のシステムの動作は同じです。つまり、特定のシステムでのテストが最初の実行で2行の出力を返し、2回目の実行で正しい出力を返す場合、システムの再起動後のコマンドの最初の実行は2行を出力します。そのため、システムは各リブート後に同じ動作を示します(私のテストによると)。ファイルの詳細は次のとおりです。 -rw-r--r-- 1 root root ./usr/share/man/man8/systemd-resolved.service.8.gz lrwxrwxrwx 1 root root ./usr/share/man/man8/systemd-resolved.8.gz -> systemd-resolved.service.8.gz -rwxr-xr-x 1 root root ./lib/systemd/systemd-resolved drwxr-xr-x 2 root root ./lib/systemd/system/systemd-resolved.service.d -rw-r--r-- 1 root root ./lib/systemd/system/systemd-resolved.service 編集:これらの特定のファイルのこの特定のケースにおそらく関連する問題を提案するすべての人々に:「システム解決」はちょうど例です。これは、他のキーワードも検索するときに発生します。これは、最初の実行で間違った結果を与える別の例です。 …
14 linux  find 

2
ディレクトリ内のすべての拡張子とそれぞれのファイル数を取得します
ディレクトリのすべての拡張機能を取得する:簡単。特定の拡張子のファイル数を取得する:簡単。 しかし、すべてのファイル拡張子とそれぞれのファイル数を取得することは私をほのめかしています。 例えば。 + dir + abc.txt + def.txt + abc.pdf * def.pov 次のようなものを返す必要があります。 .txt 2 .pdf 1 .pov 1 この演習の目的は、特定のディレクトリで人気のあるファイル拡張子を調べることです。 前もって感謝します
14 linux  find  extension 




1
円形のシンボリックリンクを見つけるにはどうすればよいですか?
HP-UXシステムで作業していますが、円形のシンボリックリンクがあるかどうかを確認したいと思います。 これまでのところ、私はコマンドを使用しています: ls -lrt `find ./ -follow -type l` ただし、結果として現在のディレクトリでls -lrtを実行するだけです。 システム内のすべての円形シンボリックリンクを検索するには、どのコマンドを使用する必要がありますか?


9
UNIXのfindコマンドをマスターするにはどうすればよいですか?
findの使用はかなり進んでいると思いますが、使用するたびに-execオプションを閉じる方法を思い出せません。私はそれを使うたびに読書にかなりの時間を費やしています。私は単にそれを十分に使用していないか、自分自身を期待しすぎていませんか?イライラする典型的な例から始めましょう。 ディレクトリ構造には、すべての不正なアクセス許可が隠されたファイルシンボリックリンクなどのファイルがあります。所有権を妥当な値に変更したい find . -type f -exec chown username {} \; find . -type d -exec chown username {} \; find . -type d -exec chgrp usergroup {} \; find . -type f -exec chgrp usergroup {} \; (エンディングが後方にある場合は私を許してください...私は1時間前にそれを見て、それでも私はわからない) しかし、マウント、シンボリックリンクなどのために実行するのが怖いです。chmod。*の究極の愚かさを作り、以前にそれを上に再帰させました。-xdevはパーティションをまたぐことを忘れますが、シンボリックリンクであるディレクトリ内にあるファイルがどうなるかはわかりません。 それでは、重要なファイルを殺すことができるこの獣をどうやってマスターするのでしょうか? 以下の最適な提案の整理と要約を更新します。 他の練習ディレクトリにリンクしてマウントした練習ディレクトリを用意します。 直感的でないexecコマンドではなくxargsを使用してください。 健全性と安全性のために-exec echo {}を使用します セミコロンは特別であり、あなたはそれをエスケープしているので、エスケープ文字が最初です -orコマンドは、選択基準を組み合わせるのに役立ちます。 私はprint0について少し混乱していますが、xargsは、私が試し、回避しようとする、一目で理解するのが容易ではないことについて、常に少しばかりです。

3
sudoでfindを安全に使用する
Linuxサーバーでは、ユーザーのグループからroot権限を削除する必要があります。ただし、これらのユーザーには、「検索」ユーティリティを使用して、ファイル名、変更日、およびその他のメタデータに基づいてファイルを検索できる正当な理由があります。 サーバーでは、ファイル名は機密ではありませんが、ファイルの内容は機密である可能性があります。 ユーザーがサーバー上の任意の場所でファイルを検索できるように、sudoを使用したいと思います。「検索」ユーティリティは素晴らしいですが、「-exec」を使用して任意のコマンドを生成するなど、あらゆる種類の副作用を許可します。 find制限を使用して作業できますか?
10 linux  sudo  find 

6
netshを使用してパターンを使用するルールを検索するにはどうすればよいですか
マイクロソフトの誰かがルールの名前を思い出せない状況に陥ったことはないかと思います。のみ受け付け1名と全くパターンマッチング機能は次のようにパターンを使用してルールを見つけることのnetshで提供されていないか、 ショーを使用し、すべてのルールを一覧表示することが可能であるが、私は窓のための強固なコマンドラインのgrepツールを見つけることができませんでした。 netsh advfirewall firewall show rule"SQL*"^SQL.+$name=all 次のようなコマンドを実行できるようにしたい: netsh advfirewall firewall show rule name=sql* これは可能ですか?

3
Findの-trueオプション:何のために?
GNU find(および他の人は?)は-true、通常の-name、-modeなど-userと一緒にテストを備えています。manページから: -true常にtrue。 manページを見るたびに、これに気づき、いつ役立つのか疑問に思います。それで、それが役に立つときの例をいくつか挙げてください:〜)
10 linux  shell  find 

4
Windows 7のFINDで「アクセス拒否」エラーが発生するのはなぜですか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? サーバー障害のトピックになるように質問を更新します。 2年前休業。 Windows 7 x64マシンに管理者アカウントを持っています。これは管理者アカウントではなく、アカウントは単に管理者グループのメンバーです。 インストールがデフォルトです。ユーザーがコマンドプロンプトを開くと、ユーザーの%HOMEPATH%ディレクトリに移動します。このディレクトリには、Documentsフォルダーなどのさまざまなディレクトリがあります。ユーザーが次の(Windows)FINDコマンドを使用すると、「アクセス拒否」エラーが発生します。 FIND /I "My String" C:\Users\Rann\Documents Access denied - C:\USERS\RANN\DOCUMENTS runasを使用するか、コマンドプロンプトを右クリックして管理者として実行しても、この動作は変わりません。管理者レベルのcmd.exeでも同じエラーが発生します。他のディレクトリへのパスを変更すると、同じエラーが発生します。 私の質問はこうです:FIND(およびおそらく他の)コマンドをどのように使用することになっていますか?どのような権利が必要ですか?

7
特定のユーザーが書き込み可能なすべてのファイルとディレクトリを見つけるにはどうすればよいですか?
Linuxでは、特定のユーザーが書き込み可能(または実際には書き込み不可)であるすべてのファイルとディレクトリを見つけるにはどうすればよいですか? 編集:明確にするために、私はシステム全体ではなく、特定のサブディレクトリの下にあることを意味しました。そして、はい、それはそのユーザーが書くことを可能にするユーザー、グループ、そして世界の書き込み可能性のすべての順列と組み合わせを意味します。これらのファイルのリストを取得するために、1つまたはいくつかのライナーを実行することを望んでいました。
10 linux  users  find 

5
正しいfind -exec構文は何ですか
特定のフォルダ内の2MBを超えるファイルを削除したいのですが。だから私は走った: find . -size +2M そして、私は2つのファイルのリストを得ました ./a/b/c/file1 ./a/f/g/file2 だから私はそれから実行します: find . -size +2M -exec rm ; エラーメッセージが表示されます Find: missing argument to -exec 私はmanページで構文をチェックし、それは言います -exec command ; 代わりに私は試します find . -size +2M -exec rm {} + そしてそれは機能します。{}がではrm file1 file2なくコマンドを実行することを理解していrm file1; rm file2;ます。 では、なぜ最初のものがうまくいかなかったのですか? 回答: 最終的には何を言っているのかを理解するために、RTFMを数回実行する必要があったと思います。最初の例では{}を示していませんが、すべての場合に中括弧が必要です。次に、\を追加します。または目的の方法に応じて+。見出しだけを読んではいけません。説明も読んでください。とった。
10 linux  find 

2
LinuxとSVN:KEEPディレクトリ構造以外のすべてのバージョン付きファイルを削除する方法、.svn dirsを無視?
リポジトリからバージョン管理されたすべてのファイルを削除したいのですが、バージョン管理されたディレクトリ構造を保持します。明らかに、すべての.svnディレクトリはそのままにしておきたいです。 つまり、ディレクトリ構造自体に害を与えることなく、作業コピーのディレクトリ構造を完全に空にしたいのです。 たとえば、次の構造からファイルを削除します。 dir/ .svn/ [files] svsubdir1/ file1 .svn/ [files] subdir2/ file2 file3 file4 .svn/ [files] subsubdir1/ file5 .svn/ [files] 結果として: dir/ .svn/ [files] svsubdir1/ .svn/ [files] subdir2/ .svn/ [files] subsubdir1/ .svn/ [files] findこれを達成するためのコマンドや何かを探していますが、コマンドの作成に問題があります。助けてくれてありがとう!
9 linux  svn  find  recursive 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.