macos – Mac OSXターミナルでファイル名でファイルを見つけるには?

find macos terminal

Macbookにあるファイル名のファイルを探したい。abc.dmg.スポットライトを使ってみましたが、見つかりません。findを使ってみたところ、find -name abc.dmg -path /を使ってもエラーが返ってきました。find -name abc.dmg -path /を使ってみたところ、エラーが返ってきました

Mac OSX 端末で find コマンドを使ってファイル名でファイルを検索するには、どのような構文が適切ですか?

  162  SPRBRN  2010-12-28


ベストアンサー

最も単純な形では、findは1つのパラメータであるパスを取ります。実際に有用な形式では、絞り込み条件に続くパスを取ります

このように、あなたは望んでいます

  • find (プログラム)
  • /(パス)、と
  • -name abc.dmg(基準)です
find / -name abc.dmg

215  VxJasonxV  2010-12-28


find . -name '*.csv'はワイルドカードを使って動作しました。OPは/にいると仮定して、find . -name '*.dmg'を使ってカレントディレクトリをチェックすることもできました

32  pjammer  2016-10-27


mdfindコマンドはSpotlightデータベースを使用します

301 Moved Permanently

11  Rich Homolka  2010-12-28


locateコマンドを使用することができます

locate abc.dmg

8  Wuffers  2010-12-28


一番簡単な方法は(もう試したと思いますが、とにかくスレッドに追加させてください)、ファインダーウィンドウの右上にある検索ボックスにabc.dmgと入力し、表示される検索バーのオプションから「ファイル名」を選択することです

端末は不要です

また、SpotlightはSpotlightコントロールパネルで指定されたディレクトリのみをインデックス化し、abc.dmgはそれらのディレクトリの1つではない可能性があることを覚えておいてください

間違っていたら訂正しますが、findコマンドは何を出力するかを知る必要があると思います

find / -name abc.dmg -print

…ターミナルに結果を表示する必要があります (パーミッションエラーを含む)

パーミッションエラーが発生しないようにして、他のユーザーディレクトリを検索したい場合は、次のようにしてください

sudo find / -name abc.dmg -print

5  Jupiter  2010-12-28


以下のコマンドライン関数を使えば、関連するファイルを素早く見つけて開くことができます。スポットライトウィンドウで長いクエリの文字列を入力するよりも簡単だと思います

~/.bash_aliasesに以下の関数を追加します

# find any item matching search query in file name
spot(){
mdfind "kMDItemDisplayName=='*$1*'cd";
}

# restrict to files under (recursive) a specific path
findpaper(){
mdfind -onlyin "/Users/foo/articles" "kMDItemDisplayName=='*$1*'cd";
}

# default to open the first entry unless 2nd positional argument is given
openpaper(){
FILEID=$(printf "%sp" ${2:-1})

open "$(mdfind -name -onlyin "/Users/foo/articles" "kMDItemDisplayName=='*$1*'cd" | sed -n "${FILEID}")"

}

今、source ~/.bash_aliasesまたは新しいターミナルのロード関数を開きます。ファイル名のどこかに単語、パイ、2016を含むファイルを検索するには、実行します

spot pie*2016 #or
spot 2016*pie

検索パターンとして、*を前置きしたり、追加したりする必要はありません。追加のcdは大文字小文字を区別せず、ダイアクリティカルマークを無視するためのものです

findpaperは特定のパスの結果に検索を制限します(再帰的)が、openpaper pie*201は(または複数の結果の最初の)検索結果を開きます。bash スクリプトやその他の非文書ファイルを開かないようにするために、追加の検索属性でファイルの内容を制限することができます。その他の検索演算子の使用法については、ファイルメタデータクエリ式構文https://ss64.com/osx/mdfind.html を参照してください

2  Samir  2018-02-09


からディスク上のすべてのファイルのリストを root としてキャプチャします

sudo find / &> ~/file-list.txt
sudo chown $(whoami) ~/file-list.txt

ドライブ全体を検索するために、ファイル全体を grep で検索します

cat ~/file-list.txt | grep abc.dmg

正規表現を使用して、.jpgと.dmgファイルのみを表示します

cat ~/file-list.txt | grep -E "(\.dmg|\.jpg)"

Result:

Applications/Visualisations/CurvedSpaces-forMac.app/Contents/Resources/Textures/paper.jpg

…など。残念ながら、マウントされているすべてのディスクをキャプチャしますので、Time Machineのものを取り出すのがベストです。そこで、別のウィンドウでwatch tail -n 10 ~/file-list.txtを実行すると、私の卑劣なハックがどこまで行われているかが表示されます!

1  Tomachi  2019-06-09


タイトルとURLをコピーしました