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データベースを使用します
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