Reset the Launch Services database.
Syntax lsregister: [Options] [path...] [-apps domain[,domain]...] [-libs domain[,domain]...] [-all domain[,domain]...]
lsregister is not on the system path so run it using the full path as shown in the examples below.
Options -delete Delete the Launch Services database file. You must then reboot! -kill Reset the Launch Services database before doing anything else. -seed If database isn't seeded, scan default locations for applications and libraries to register. -lint Print information about plist errors while registering bundles. -lazy n Sleep for n seconds before registering/scanning. -r Recursive directory scan, do not recurse into packages or invisible directories. -R Recursive directory scan, descending into packages and invisible directories. -f force-update registration even if mod date is unchanged. -u unregister instead of register. -v Display progress information. -gc Garbage collect old data and compact the database. -dump [table] Display full database contents after registration. -h Display help. -convert Register apps found in older LS database files
Valid domains are "system", "local", "network" and "user". Domains can also be specified using only the first letter. Domains can also be specified using only the first letter, s,l,n,u.
Paths are searched for applications to register with the Launch Service database. The Launch Service database controls the Finder's 'Open With' right click, contextual menu.
Resetting the system domain will also reset the first-launch security prompt: the first time you launch an application by opening a document, the system will ask 'are you sure'.
This is equivalent to deleting the Launch services plist:
If you have a large group of files that are opening in the wrong application even after changing the "Open With" setting, then resetting the Launch Services registry database should fix the problem.
After running lsregister to rescan the database or create a new UTI, run killall Finder to reload the Finder's “Open With” Menu, or just restart the machine.
lsregister is not on the system path so either:
Create an alias 'lsr' for the full path to lsregister:lsr='/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister
or temporarily add the directory to your PATH so that you can run lsregister with just lsregister
Run lsregister and display help
Reset the Local & User domains: lsregister -kill -r -domain local -domain user Reset the Local, User and System domains:
lsregister -kill -r -domain local -domain user -domain system -v Rebuild macOS’s Launch Services to reset app and document associations: lsregister -kill -seed
“Because the people who are crazy enough to think they can change the world, are the ones who do” ~ Apple Advert
Onyx utility - Includes a maintenance script to rebuild the Launch Services.
Article: TA24770 - Clear the 10.4 Finder "Open With" contextual menu.
StackExchange - How can I make macOS recognize new file extensions?