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

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

1
updatebは、見つけるよりもはるかに高速ですか?
どのupdatedbようにはるかに高速findですか? updatedbとfind、一見似たようなタスクを実行するコマンドの時間を比較します。 compare.sh #!/usr/bin/env bash cmd="sudo updatedb" echo $cmd time eval $cmd cmd="sudo find / \ -fstype ext4 \ -not \( \ -path '/afs/*' -o \ -path '/net/*' -o \ -path '/sfs/*' -o \ -path '/tmp/*' -o \ -path '/udev/*' -o \ -path '/var/cache/*' -o \ -path '/var/lib/pacman/local/*' -o \ …
11 find  locate  updatedb 

2
すべてのSUID / SGIDファイルを検索するにはどうすればよいですか?
私がウェブで見つけたすべてのハウツーは次のように述べています: Find all SUID files: find / -perm -4000 -print Find all SGID files: find / -perm -2000 -print しかし、それは真実ではありません。見る: $ ls -lah test -r-sr-xr-x 1 user user 0B Jan 24 22:47 test $ $ $ stat -x test | grep Mode Mode: (4555/-r-sr-xr-x) Uid: ( 1000/ user) Gid: ( …
11 find 

1
「find -exec cmd {} +」が「{} +」で終わる必要があるのはなぜですか?
序文:-exec {} \;&の違いを理解しました-exec {} +。私もそのような問題はありませんが、のセマンティクスに興味がありfindます。 終了する場合-execと、引数+の代わりに;、我々は必要でこれを終了するには{} +、たとえば、: # FreeBSD find $ find . -type f -exec cp {} /tmp + find: -exec: no terminating ";" or "+" # GNU find is even more cryptic: $ find: missing argument to `-exec' ;これらの例の代わりに使用することは+問題なく動作します(ただし、明らかに他のことを行います)。 POSIXから: -exec utility_name [argument ...] ; -exec utility_name [argument …
11 find  history  posix 

3
find unixコマンドを使用して絶対パスを取得する方法
findコマンドを使用して絶対パスを取得する方法。 実際に私は次のスクリプトを実行しています:- find . -size +20M | while read a do i=$(echo $a | sed 's:/: :g') echo $a; j=($i) fileName=${j[${#j[@]}-1]} userName=${j[${#j[@]}-3]} done しかし、ここ$aから始まるパスを示す変数ですが、からの./Downloads/filename絶対パスが必要です/。

3
検索結果に「人間が読める」ファイルサイズを表示する方法
Centosサーバーですべての大きなファイルを見つけようとしています。そのために私は使用しています: find / -maxdepth 10 -size +100000 -ls に変え-lsてみました-lshが許可されません。 これらの結果を人間が読めるサイズ(接尾辞k、Mなどを使用)で表示するにはどうすればよいですか?
11 shell  find  ls 

7
最終更新日に基づいてディレクトリ内のファイルを再帰的にソートします
最終更新日に基づいてディレクトリ内のファイルを再帰的にソートします 私は自分のディレクトリ内の多くのファイルを変更しましたが、それらのファイルが最後に変更された日付で並べ替えることによってそれらのファイルが何であるかを知りたいので、一部の拡張機能を除外します svnディレクトリには、ソートに表示したくない.svnファイルもたくさんあります
11 shell  scripting  find  sort 

2
検索でディレクトリを除外
を使用して1つのディレクトリを除外して、パターンに一致するすべてのファイルとディレクトリを見つけるにはどうすればよいfindですか? 次のファイル構造があるとします。 。 foo-exclude-me / foo.txt foo-exclude-me-not / foo.txt バー/ foo.txt foob​​ar / bar.txt foofoo.txt を使用して次の出力をどのように取得しますかfind: ./bar/foo.txt ./bar/foobar ./bar/foobar/foofoo.txt ./foo-exclude-me-not ./foo-exclude-me-not/foo.txt 次のコマンドの両方を使用してみました: 見つける。-name 'foo-exclude-me' -prune -o -name 'foo *' 見つける。-name 'foo *' \!-path './foo-exclude-me/*' しかし、どちらもこれを返します: ./bar/foo.txt ./bar/foobar ./bar/foobar/foofoo.txt ./foo-exclude-me # << this should be excluded ./foo-exclude-me-not ./foo-exclude-me-not/foo.txt foo-exclude-meディレクトリを適切に除外するにはどうすればよいですか?
11 find 

1
検索で拡張子を省略しますか?
複数の.pngファイルからサムネイルを作成する必要があり、ImageMagicks convertユーティリティを使用してこれを実行したいと考えています。それ自体がサムネイルではないすべてのファイルを再帰的に見つけるために、次の呼び出しを使用しています(読みやすくするために2行に分割しています)。 find . -type f -name "*.png" -not -name "*thumb.png*" \ -exec convert {} -thumbnail 200x200 {}.thumb.png \;` しかし、これはもちろん、というファイルでa.png.thumb.png実行したときにという名前のファイルを作成しますa.png。変換に渡される.png2番目の{}パラメーターから拡張子を削除するにはどうすればよいですか?
11 find  imagemagick 

6
多様なアーカイブ形式のすべてのアーカイブファイルを再帰的に検索し、ファイル名パターンを検索する
せいぜい私はこのような電話をしたいと思います: $searchtool /path/to/search/ -contained-file-name "*vacation*jpg" ...このツールが 指定されたパスを再帰的にスキャンします サポートされているアーカイブ形式のすべてのファイルを取得します。zip、rar、7z、tar.bz、tar.gzなどの「最も一般的な」形式である必要があります... アーカイブのファイルリストをスキャンして、問題の名前パターンを探します(ここ*vacation*jpg) 検索ツール、tar、unzipなどの使用方法を知っています。これらをシェルスクリプトと組み合わせることができますが、シェルのワンライナーまたは専用ツールである可能性のあるシンプルなソリューションを探しています(GUIツールへのヒントは大歓迎ですが、私のソリューションはコマンドラインベースである必要があります)。
11 find  tar  zip  7z  rar 

2
ディレクトリ構造を保持しながら、ディレクトリ内のすべてのPDFを圧縮する
私のディレクトリの1つに存在するすべてのPDFファイルを含む圧縮tarballを作成しようとしています。ディレクトリ構造を保持する必要があります。空のディレクトリは必要ありませんが、そこにあるかどうかは気にしません。 たとえば、次のようなディレクトリがあるとします。 dir dir/subdir1 dir/subdir1/subsubdir1/song.mp3 dir/subdir2 dir/subdir2/subsubdir1 dir/subdir2/subsubdir1/document.pdf dir/subdir2/subsubdir1/another-song.mp3 dir/subdir2/subsubdir1/top-ten-movies.txt dir/subdir3 dir/subdir3/another-document.pdf コマンドを実行した後、これを含めたいですdir.tar.gz: dir dir/subdir2 dir/subdir2/subsubdir1 dir/subdir2/subsubdir1/document.pdf dir/subdir3 dir/subdir3/another-document.pdf 可能?
11 find  tar  recursive 

4
findを使用して見つかったファイルのコンテンツを1つのファイルに分類するにはどうすればよいですか?
貴重なデータを保持するパーティションを再フォーマットすることで、痛いところ(本当に悪いところ)をなんとか撃ちました。もちろんそれは意図的なものではありませんでしたが、起こりました。 しかし、ほとんどのデータを使用testdiskしphotorecて回復することができました。これで、すべてのデータがほぼ25,000のディレクトリに分散されました。ほとんどのファイルは.txtファイルで、残りは画像ファイルです。各ディレクトリには300を超える.txtファイルがあります。 私がすることができますgrep使用するか、またはfindファイルに.txtファイルを出力してから特定の文字列を抽出します。たとえば、次の行は、データが復元されたファイルにあることを確認するために使用しました。 find ./recup*/ -name '*.txt' -print | xargs grep -i "searchPattern" 「searchPattern」をファイルに出力することはできますが、そのパターンが得られるだけです。これが私が本当に達成したいことです: すべてのファイルを調べ、特定の文字列を探します。その文字列がファイルで見つかった場合、そのファイルのすべての内容を出力ファイルにcatします。パターンが複数のファイルで見つかった場合は、後続のファイルの内容をその出力ファイルに追加します。検索しているパターンを出力したくないだけで、パターンが見つかったファイルのすべてのコンテンツを出力したいことに注意してください。 これは可能だと思いますが、特定のパターンをそこからgrepした後で、ファイルのすべてのコンテンツを取得する方法がわかりません。

3
特定のサブディレクトリを除くすべてのファイルを、findで削除します。
aサブフォルダー内のすべてのファイルを除いて、フォルダー内でしばらくアクセスされなかったすべてのファイルを再帰的に削除したいb。 find a \( -name b -prune \) -o -type f -delete ただし、エラーメッセージが表示されます。 find:-deleteアクションは-depthを自動的にオンにしますが、-depthが有効な場合、-pruneは何もしません。とにかく続行したい場合は、明示的に-depthオプションを使用してください。 追加する-depthと、すべてのファイルbが含まれますが、これは発生してはなりません。 誰もがこれを機能させる安全な方法を知っていますか?
11 find  directory  rm 

2
多数のXMLファイルの再フォーマット
ネストされたディレクトリ構造全体に散在する多数のXMLファイルを操作しています。 私は以下を試しました: $ find . -name "*.xml" -type f | xargs -- xmllint --format 問題は、フォーマットされたXML出力を画面に生成しますが、ファイルを変更しないことです。 このコマンドを変更して、実際のファイルの内容を変更するにはどうすればよいですか?
11 find  xargs  xml 

1
findコマンドで見つかった複数のファイルの権限を変更するにはどうすればよいですか?
多数のファイルを含むディレクトリがあります。ファイルの一部には755権限があり、他の部分には644権限があります。755権限のあるファイルをに変換したい644。次の行をディレクトリ自体から実行してみました。 find . -perm 755 -exec chmod 644 {}\; ただし、その結果、アクセス許可はディレクトリ自体に対してのみ変更され、変更後はファイルのアクセス許可が変更されていないことがわかりました。私は何かを逃していますか?

9
で始まるファイルのみを表示します。(非表示)
隠しファイルのみを表示しようとしましたが、どうすればいいのかわかりません。 それは機能しています(ただし、他の場所のドットも一致しています) ls -la | grep '\.' 追加しようとしました^が、解決策が見つかりませんでした。
11 find  ls  dot-files 

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