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

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

6
ベース名が親ディレクトリの名前である特定の拡張子を持つすべてのファイルを検索します
ベース名がファイルの親ディレクトリの名前と一致*.pdfするディレクトリ内のすべてのファイルを再帰的に検索したいと思い~/fooます。 たとえば、ディレクトリ構造~/fooが次のようになっているとします。 foo ├── dir1 │ ├── dir1.pdf │ └── dir1.txt ├── dir2 │ ├── dir2.tex │ └── spam │ └── spam.pdf └── dir3 ├── dir3.pdf └── eggs └── eggs.pdf 希望するコマンドを実行すると戻ります ~/foo/dir1/dir1.pdf ~/foo/dir2/spam/spam.pdf ~/foo/dir3/dir3.pdf ~/foo/dir3/eggs/eggs.pdf findまたは他のコアユーティリティを使用してこれは可能ですか?これは-regexオプションを使用して実行できるとfind思いますが、正しいパターンの書き方がわかりません。
9 find 

3
ファイルの種類でファイルを見つける方法は?
次を使用してファイルを検索できることを知っていfindますfind . -type f -name 'sunrise'。結果の例: ./sunrise ./events/sunrise ./astronomy/sunrise ./schedule/sunrise また、ファイルのファイルタイプを判別できることも知っていますfile sunrise。結果の例: sunrise: PEM RSA private key しかし、どうすればファイルの種類でファイルを見つけることができますか? たとえば、my-find . -type f -name 'sunrise' -filetype=bash-script次のとおりです。 ./astronomy/sunrise ./schedule/sunrise


3
名前に3文字以上のPDFをすべて検索します
名前(拡張子を除く)が3より大きいPDFファイルを見つけたいのですが。 $ find ~ -iregex ".{3,}/.pdf" 何も返しませんが、 $ find ~ -iregex ".+/.pdf" 動作します。 {3,}バリアントを有効にするにはどうすればよいですか?
9 find 

1
〜から実行したときにfindコマンドがディレクトリを見つけられないのはなぜですか?
/tmpという名前のディレクトリが下にありますtest_copy。 $ ls /tmp/test_copy/ a.sh b.sh $ cd /tmp /tmp$ find . -name test_copy ./test_copy しかし、次のfindコマンドを実行しても何も返されません。 ~/scripts$ find /tmp -name test_copy ~/scripts$ find最後のケースでディレクトリが見つからないのはなぜですか?
9 linux  find 

3
findで見つかったファイルを引数として渡す方法は?
まず、些細なしかし不適当答え遮断する:私はどちらも使用することができますfind+のxargsトリックも(のようなその変種findとを-exec私は呼び出しごとにいくつかのような表現を使用する必要があるため)。最後にこれに戻ります。 より良い例として、次のことを考えてみましょう。 $ find -L some/dir -name \*.abc | sort some/dir/1.abc some/dir/2.abc some/dir/a space.abc それらを引数としてどのように渡すのprogramですか? それをするだけではうまくいきません $ ./program $(find -L some/dir -name \*.abc | sort) program次の引数を取得するため失敗します: [0]: ./program [1]: some/dir/1.abc [2]: some/dir/2.abc [3]: some/dir/a [4]: space.abc ご覧のとおり、スペースのあるパスは分割さprogramれており、2つの異なる引数と見なされます。 機能するまで引用する 私のような初心者ユーザーは、そのような問題に直面したときに、最終的に機能するまでランダムに引用符を追加する傾向があります-ここではそれだけでは役に立たないようです… "$(…)" $ ./program "$(find -L some/dir -name \*.abc | sort)" [0]: …


8
名前がファイルリストの行と一致しないディレクトリ内のすべてのファイルを削除します
1000以上のファイルがあるディレクトリがあります。テキストファイルには、1行に1つずつ、約50個のファイル名があります。ファイル名がリストのエントリに対応していないディレクトリ内のすべてのファイルを削除したいのですが。これを行う最良の方法は何ですか?シェルスクリプトを開始しましたが、ファイル名がリストにあるかどうかを判別する適切なコマンドを判別できませんでした。ありがとう。
9 files  find 

6
basenameを使用して、ファイルに保持されているパスのリストを解析します
Mac OSXを実行していて、コマンドラインを使用して、同じ名前のファイルの数を見つけようとしています。 次のコマンドを使用しようとしました。 find ~ -type f -name "*" -print | basename | sort | uniq -d > duplicate_files 動かない!私が次のことをすると: find ~ -type f -name "*" -print > duplicate_files 次に、duplicate_filesにはすべてのファイルのパスが含まれています。だから私は問題があると思いますbasename-それは標準入力を受け付けません。それから私は以下を試しました: basename $(find ~ -type f -name "*" -print) > duplicate_files しかし、それでもうまくいかないようです。インターネットでの検索はあまり喜びをもたらしていないようです。どんな考えでも大歓迎です。

2
find + xargsでファイルを移動する:ターゲットはディレクトリではありませんか?
次のコマンドを実行すると: > mkdir some_dir > find /foo/bar/ -name '*.csv' -print0 | xargs -0 mv {} some_dir 次のような数百行が表示されます。 mv: target `/foo/bar/XX.csv` is not a directory どうして?xargsが実行されると思った: mv /foo/barXX.csv some_dir find見つかったすべてのファイルに対して。どうしたの?ちなみにこれはzshで 更新: Update1: 私は試した: find /foo/bar/ -name '*.csv' -print0 | xargs -0 mv {} -t some_dir しかし、私は次のような数行を得ました: mv: cannot stat `{}': No …
9 find  xargs 

4
複数のディレクトリをfindの-pruneオプションに渡す
findバックアップファイルの検索と削除に使用していますが、特定のディレクトリを検索から除外したいと考えています。バックアップファイル名はで終了する可能性があり.bck、bak、~、またはbackup。 除外するディレクトリが3つだけのMinimal Working Example(MWE)コードは次のとおりです。 #! /bin/bash find . -type d \( -path "./.*" -o -path "./Music" -o -path "./Documents" \) -prune -o -type f \( -name "*.bck" -o -name "*.bak" -o -name "*~" -o -name "*.backup" \) -print0 | xargs -0 --no-run-if-empty trash-put 構文\( -path "dir1" -o -path "dir2" ... …

3
通常のファイルとディレクトリの両方を見つける
ディレクトリとファイルタイプの両方のファイルを見つけるために、findをどのように(私がわかる場合は!)見つけることができますか? find -type fd これは、ここでのヒューリスティックな暗黒時代のようなものです。
9 find 

6
UNIXコマンド-検索
私はUNIXコマンドを習得しようとしていますが、このゲームをプレイして習得していて、今は本当に行き詰まっています。私はsshを介してサーバーにいて、ディレクトリはランダムなファイルとフォルダーでいっぱいで、次のレベルのパスワードはファイルの1つにあります。このファイルには次の属性があると聞いています。 人間が読める 1033バイト 非実行可能 findコマンドを使用する必要find ! -executableがあると思いますが、試しましたが、ファイルのロードが返されました。マニュアルまたはオンラインで人間が読める唯一のヘルプは、ファイルサイズを人間が読める形式で出力することです。そこで少し迷っていますか? また、私は試みましたfind ~ -size 1033bが、それは何も返しませんでした。しかし、私が試しfind ~ -size -1033bたとき、ディレクトリ内のすべてのファイルが返されました。



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