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

検索に関する質問については、ディレクトリ階層内のファイルを検索するコマンドラインユーティリティ。このタグは、find自体に関する質問や、findコマンドラインユーティリティの使用から発生する問題に関する質問に使用します。

1
findコマンドのctime 1とctime +1の違い
次のコマンドを実行すると: find . -name "*.jar" -type f -ctime +1 私が実行した場合、結果は返されません: find . -name "*.jar" -type f -ctime 1 結果が得られます。
17 find 




4
特定のサブディレクトリの検索コマンド
のは、私はディレクトリ持っていると言うdir3つのサブディレクトリとしdir1... dir3。そして、内部には多くのファイルと他のサブディレクトリがあります。 *.c末尾を付けて、内部のファイルを検索したいのですが、サブディレクトリ「dir / dir2」とそのすべてのサブディレクトリのみを検索したいです。どうすればそれを定式化できますか? 私がいると仮定するとdir/: find . -name "*.c" すべてのディレクトリを検索します。 のみに制限するにはどうすればよいdir2ですか?
17 linux  bash  shell  find 

5
特定の名前のフォルダーを除くフォルダー内のすべてのフォルダーを削除する
毎日のスクリプトを使用して、フォルダー内のすべてのフォルダーを削除する必要があります。その日のフォルダは残す必要があります。 フォルダ「myfolder」には3つのサブフォルダがあります:「test1」、「test2」、「test3」「test2」以外のすべてを削除する必要があります。 ここで正確な名前に一致させようとしています: find /home/myfolder -type d ! -name 'test2' | xargs rm -rf または find /home/myfolder -type d ! -name 'test2' -delete このコマンドは常にメインフォルダー「myfolder」も削除しようとします!これを回避する方法はありますか?
17 linux  find  delete 

5
生成されたファイル名のリストを引数リストとして使用—スペースあり
によって収集されfindたファイル名のリストを使用してスクリプトを起動しようとしています。特別なものはなく、次のようになります。 $ myscript `find . -name something.txt` 問題は、パス名の一部にスペースが含まれているため、引数の展開時に2つの無効な名前に分割されることです。通常、名前を引用符で囲みますが、ここでは逆引用符の展開によって挿入されます。find各ファイル名の出力をフィルタリングして引用符で囲みましたが、bashがそれらを見るまでにそれらを取り除くには遅すぎて、ファイル名の一部として扱われます: $ myscript `find . -name something.txt | sed 's/.*/"&"/'` No such file or directory: '"./somedir/something.txt"' はい、それがコマンドラインの処理方法のルールですが、どうすれば回避できますか? これは恥ずかしいことですが、私は正しいアプローチを思い付くことに失敗しています。私は最終的にそれをどのように行うかを見つけましたxargs -0 -n 10000...しかし、それは私がまだ聞きたいと思うようなsuchいハックです:バッククォート展開の結果を引用する方法、または別の方法で同じ効果を達成するにはどうすればよいですか? 編集:私は、事実について混乱していたxargs んそれはそう言われていますか、システムの制限を超えることがありますしない限り、単一の引数リストにコレクトすべての引数を。まっすぐに設定してくれてありがとう!他の人は、受け入れられた答えを読んでいるときにこれを覚えておいてください。なぜなら、それは直接指摘されていないからです。 私は答えを受け入れましたが、私の質問は残ります:バックティック(または$(...))拡張でスペースを保護する方法はありませんか?(受け入れられた解決策は非bash回答であることに注意してください)。

4
「検索」で一致するものが見つかったかどうかを検出する方法
「検索」で一致するものが見つかったかどうかを検出する慣用的な手段はありますか?私は現在使用しています COUNT=`find ... | wc -l` if [ "$COUNT" -gt 0 ]; then しかし、これは私には少し間接的なようです。また、一致が見つかったら検索を停止したいので、時間と労力を無駄にしません。一致するファイルがあるかどうかを知る必要があるだけです。 更新:私は自分の前にコードなしで質問を書くのを間違えました:私wc -lは別のケースで使用します、とにかく見つかったファイルの総数を知る必要があります。一致するものがあるかどうかだけをテストする場合、を使用していましたif [ -z $(find …) ]。
16 find  osx 

6
圧縮されたアーカイブを再帰的にgrepするにはどうすればよいですか?
私はuse Test::Versioncpanのどのモジュールを見つけようとしています。だから私はminicpanそれをミラーリングするために使用しました。私の問題は、ダウンロードされたアーカイブを反復処理し、アーカイブ内のファイルをgrepする必要があることです。誰も私にこれをどうやってやるか教えてもらえますか?できれば、アーカイブ内のファイルとその行を教えてくれる方法で。 (注:それらはすべてtarballであるわけではなく、一部はzipファイルです)
16 grep  find  zip  recursive  archive 

3
bashはxargs grepを1回だけ検索します
多分それは少し奇妙です-そして多分これを行うための他のツールがありますが、まあ.. 次の古典的なbashコマンドを使用して、文字列を含むすべてのファイルを検索しています。 find . -type f | xargs grep "something" 複数の深さで、非常に多くのファイルがあります。「何か」が最初に現れるだけで十分ですが、findは検索を続け、残りのファイルを完了するのに長い時間がかかります。私がやりたいのは、grepから検索への「フィードバック」のようなもので、findが他のファイルの検索を停止できるようにすることです。そのようなことは可能ですか?
16 bash  find  grep  xargs 

5
ファイル内の任意の場所に複数のキーワードを含むファイルを検索します
私は、ファイル内のどこにでも、探しているキーワードの完全なセットを含むディレクトリ内のすべてのファイルをリストする方法を探しています。 そのため、キーワードを同じ行に表示する必要はありません。 これを行う1つの方法は次のとおりです。 grep -l one $(grep -l two $(grep -l three *)) 3つのキーワードは単なる例であり、2つ、または4つなどの場合もあります。 私が考えることができる2番目の方法は次のとおりです。 grep -l one * | xargs grep -l two | xargs grep -l three 別の質問に登場した3番目の方法は次のとおりです。 find . -type f \ -exec grep -q one {} \; -a \ -exec grep -q two {} \; -a …


4
Linuxでシェルスクリプトを使用してすべてのファイル名のスペースをアンダースコアに置き換える方法は?
すべてのXMLファイル名のスペースを置き換えるシェルスクリプトを試してみました for xml_file in $(find $1 -name "* .xml" -type f); do echo "removing spaces from XML file:" $xml_file mv "$xml_file" "${xml_file// /_}"; done という名前のxmlファイルがありxy z.xml、次のようになっているとします。 removing spaces from XML file: /home/krishna/test/xy mv: cannot stat `/home/krishna/test/xy': No such file or directory removing spaces from XML file: .xml mv: cannot stat …

2
年齢によるファイルの削除
N日以内に変更されていないディレクトリ内のすべてのファイルを削除するコマンドはありますか?古いログをクリーンアップする必要があります。
16 find  rm 

8
内容に100%NUL文字を含むファイルを見つける方法は?
そのようなファイルを識別できるLinuxコマンドラインコマンドとは何ですか? 私の知る限り、findコマンド(またはgrep)はテキストファイル内の特定の文字列にのみ一致します。しかし、コンテンツ全体を一致させたい、つまり、行末文字を無視して\0+、どのファイルが正規表現に一致するかを確認したい。おそらくこのイディオムは機能するかもしれませんが、行を無視してgrepを作成する(そしてファイルをバイナリとして扱う)方法がわかりません。find . cat | grep 背景:ラップトップがフリーズすると、数日ごとにbtrfsパーティションの情報が失われます。書き込み用に開かれたファイルの内容はゼロに置き換えられます(ファイルのサイズはほぼそのままです)。私は同期を使用しますが、これらの偽のファイルを伝播させたくありません。バックアップから取得できるようにそれらを識別する方法が必要です。

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