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

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

1
findのprint0オプションで出力を減らしましたか?
manページやその他のリファレンスを読みましたが、find with -print0optionの動作にはまだ混乱しています。 -print0 This primary always evaluates to true. It prints the pathname of the current file to standard output, followed by an ASCII NUL character (character code 0). 最初のコマンド: $ find /some/path/ -iname "*intro*jpeg" -o -iname "*intro*jpg" 2> /dev/null /some/path//asdf199Intro-5kqlw.jpeg /some/path/199intro-2jjaj.JPEG /some/path/199intro-3.jpg /some/path/wuer199intro-4.JPG /some/path/xbzf199INTRO-1.jpg 2番目のコマンド: $ find /some/path/ …
10 find 

1
Solarisでdepth / pruneと同等ですか?
ディレクトリ内のいくつかのファイルを見つけようとしています。デフォルトでは、検索commandは指定したディレクトリとそのサブディレクトリを検索します。 私はdepth/maxdepthand を使おうとしpruneましたが、これを克服するのに役立つものは何もありませんでした。Solarisでdepth / pruneを使用する正しい方法を誰かが指摘できますか? 私のコードは次のようになります: find file_path -depth 1 -name '*.log' 次のエラーが発生します。 find: bad option 1 find: [-H | -L] path-list predicate-list
10 find  solaris 

1
なぜいくつかの正規表現コマンドは、さまざまな文字を含む '\'の反対の解釈を持っているのですか?
たとえば、次のコマンドを見てください。 find . -regex ".*\.\(cpp\|h\)" これにより、ディレクトリ内のすべての.hおよび.cppファイルが検索されます。ピリオド文字「。」正規表現では通常、「任意の文字」を意味します。実際のピリオドのみに一致させるには、バックスラッシュ文字「\」を使用してエスケープする必要があります。 この場合、特別な意味を持つ文字を指定すると、それをエスケープして、その文字が表す実際の文字を取得する必要があります。 ここで、括弧と「or」バーをそれぞれ「(」、「)」、「|」の文字として扱います。これらには、正規表現のグループ化に使用される特別な意味もあります。ただし、特別な意味を得るには、バックスラッシュを使用して文字をエスケープする必要があります。バックスラッシュがなければ、文字はそれが表す実際の文字の意味を持ちます。 なぜ「。」「(」、「)」、および「|」とは異なる方法で処理されますか?

3
「検索」出力から複数のファイルを開く方法は?
私はディレクトリにある複数のファイルを次のように開くことができることを知っています: find -name *.foo -xargs <command> {} \; これは機能しますが、geditで多数のテキストファイルを同時に開こうとすると、それらが連続して開かれます(1つのファイルが閉じられると、次のファイルが開かれます)。 これらのファイルをすべて同時に開きたいのですが。どうすればこれを達成できますか?
10 bash  find  xargs 

4
コマンドラインからファイルシステム内のファイルを見つける方法は?
(部分的に既知のファイル名を持つ)ファイルがファイルシステムのどこにあるのかを知りたいのですが。GUIユーティリティを使用するのではなく、コマンドラインからこれを行う方法を知りたいです。 Windowsでは、次のコマンドを実行します。 cd /d C:\ dir *filename* /s Linuxの同等機能は何ですか?
10 ubuntu  find  ls  locate 

5
単一の組み込みコマンドで、サブディレクトリにまたがるファイル内の部分文字列を検索しますか?
Windowsでは、すべてのサブディレクトリのすべてのファイルから文字列を検索したい場合は、次のようにします。 findstr /C:"the string" /S *.h しかし、Linux(たとえば、Ubuntuの)で私が関与するいくつかのパイプされたコマンドよりも、他の方法を見つけていないfind、xargsとgrep(例では、このページにある:どのように私は再帰的にサブディレクトリをgrepすることができますか?)。ただし、私の質問は異なります。シェルスクリプトを記述しなくても、この魔法を介して機能する組み込みのコマンドは1つありますか?
10 linux  grep  find  recursive 


1
500日以上経過したファイルを削除する
2010年からのファイルを含むディレクトリがあります。500日より古いすべてのファイルを削除したいのですが、これを試しました。 find /var/log/arc/* -type f -mtime +500 -delete {}\; しかし、私はこれを得ます: -bash: /usr/bin/find: Argument list too long 私が知っているように、これはファイルが多すぎてfindそれらを処理できないことを意味します。しかし、+20003年以上経過している場合でも、これを取得しています。 ここで何が欠けていますか?

2
findコマンドを使用して、フォルダーprocおよびsysを検索から除外するにはどうすればよいですか?
ランダムなディレクトリパスを選択するスクリプトを実行したいと思いました。 find / -type d | shuf -n1 残念ながら、特定のディレクトリに入ることの禁止に関するエラーメッセージが表示されます。 findでディレクトリを検索から除外するにはどうすればよいですか?

2
シンボリックリンクが存在しないファイルを一覧表示するにはどうすればよいですか?
その他のドキュメントでいっぱいの大きな「myfiles」ディレクトリがあり、その構造を変更したくありません。 したがって、ドキュメントのクラスごとに(いくつかの)他のディレクトリを作成しました。たとえば、「myfiles」ディレクトリ内の各ファイル.jpgまたは.cr2ファイルへのシンボリックリンクと、説明と他のメタデータを含む各シンボリックリンク(同じファイル名を持つ)の他の説明ファイルを持つ「images」ディレクトリがあります。/ imagesディレクトリのシンボリックリンクは、元のリンクされたファイルとは異なる名前を持つ場合があります。 「myfiles」ディレクトリ内のすべての画像ファイルに「images」ディレクトリへのシンボリックリンクがあることを確認する最も簡単な方法を見つけようとしています。 フォルダー構造の例を見る /myfiles/a.doc /myfiles/b.jpg /myfiles/c.cr2 /myfiles/d.mov 結果になるはずです /images/b_800x600.jpg /images/b_800x600.desc /images/c_3820x5640.cr2 /images/c_3820x5640.cr2

2
ディレクトリを削除せずにすべてのファイルを再帰的に削除します
サブディレクトリ内のすべてのファイルを含むディレクトリのすべてのファイルを「整理」したいが、サブディレクトリはそのままにしたい。私の理解でrm -rは、サブディレクトリ自体も削除されます。 私はしていない隠れた(ドット)ファイルを削除します。 これはどのように行うことができますか?
10 command-line  find  rm 

2
「検索-パス」の説明
findコマンドは、オプションを提供します-path。どこから探し始めるかを定義する必要があることを理解しています[一般に「パス」として知られています]。それが何に使用されているかを理解しようとすると、私はfind -path -pruneいくつかのパスを除外するために使用している多くの例を見つけました。 質問:何find -pathが行われるかについての説明。このオプションの用途。 ご注意ください:私には非常にはっきりしているように見えますが、思ったように機能しません。私はを通じて働いたmanとinfoページが、私は、このオプションの完全な意味を得ることはありません。 編集私が理解しているように:のサブディレクトリであるディレクトリfind /some/path -name stuffから始めて、「もの」を探し始める必要pathがありsomeます。動作します。しかし、それでは-pathオプションは何を定義するのでしょうか?次のような文を含む定義 特別扱いしない/か. あまり役に立たず、さらに混乱します。
10 find 

4
サブディレクトリを含まないディレクトリを見つける
スクリプトはkshです。現在のディレクトリの直下にある、サブディレクトリではなくファイルのみを含むすべてのディレクトリ名を検索する必要があります。 ls -alR(dディレクトリの)最初のフィールドの最初の文字の出力を使用して再帰的に解析できることを知っています。awk解析して見つけるのに最適な方法だと思います。 たとえばls -al、現在のディレクトリの単純な出力は次のとおりです。 drwxr-xr-x 22 af staff 748 18 Mar 22:21 . drwxr-xr-x 5 root admin 170 17 Mar 18:03 .. -rw------- 1 af staff 3 17 Mar 16:37 .CFUserTextEncoding drwxr-xr-x 5 af staff 170 17 Mar 17:12 Public drwxr-xr-x 9 af staff 306 18 Mar 17:40 Sites …
10 shell  find  directory  ls  ksh 

7
mogrifyを使用して小さなファイルを無視しながら大きなファイルのサイズを変更する
次のコマンドを実行しています。 mogrify -resize '400x400>' *.png 「>」に注意してください。おそらくそれは小さなファイルを無視しますが、それらはサイズ変更されませんが、それらを編集します(変更日とファイルサイズが変更されます)。 実際に小さいファイルをそのままにしておく方法はありますか?数千の不要な書き込み操作を回避したいと思います。
10 find  mogrify 

2
dockerで文字列を検索してsedするとエラー「デバイスまたはリソースがビジーです」が発生する
この問題は、Dockerコンテナでのみ発生します。 だけfindで結構です。 find ${BASIN_SPIDER_CONFIG_PATH} -type f -name "*.json" find セッド付き find ${BASIN_SPIDER_CONFIG_PATH} -type f -name "*.json"|xargs sed -i "s/10.142.55.199/host02/g" エラーを出します: /xxx/config/sed8Ey5tD: Device or resource busy 何なのか分からないsed8Ey5tD、ls見えない。港湾労働者によるものだと思いますが、わかりません。 sed成功する方法は? OK、ファイルがdockerによってボリューム化されていることがわかり volumes: /xxx/config.json : /xxx/config/config.json ましたdocker-compose.yml。その後docker-compose down、ファイルを編集できます。しかし、どうすればファイルを編集できますdocker-compose downか?
10 sed  find  docker  xargs 

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