Execute "Get Info" on a file from command line in Mac OS X

How would you get the "Get Info" window to appear from command line as you would if you were in Finder and hit Command-I? I could write it in applescript... but I stay away if I can.

5 Answers

Here is my updated version of the script (including attribution to the original source, as I found it a couple of years ago). The main change in functionality is that it will handle pathnames that include characters that are not encoded identically between MacRoman and UTF-8 (anything outside ASCII).

#!/bin/sh
# Requires a POSIX-ish shell.
#
# Originally From:
#
# show_getinfo
# This script opens the Finder's "Get Info" window
# for the file or folder specified as a command-line argument.
# Cameron Hayne () March 2003
# Chris Johnsen <> August 2007, December 2009
# Include Unicode path in AppleScript code via "utxt" block(s).
# Handle case where cwd ends in newline.
utf8_to_AppleScript_utxt() { o="$(printf '\302\253')" # UTF-8 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK c="$(printf '\302\273')" # UTF-8 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK # AppleScript utxt: # < # <<data utxtXXXX>> where # << is actually U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK # >> is actually U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK # XXXX are the hex digits of UTF-16 code units # If a BOM is present, it specifies the byte order. # The BOM code point will not be a part of the resulting string value. # If no BOM is present, the byte order interpreted as native. # The iconv invocation below *MUST* # include a BOM # or produce native byte ordering # or include a BOM and produce native byte ordering. # In my testing, iconv to UTF-16 includes a BOM and uses native ordering. iconv -f UTF-8 -t UTF-16 | ( printf '("" as Unicode text' hexdump -ve "\" & ${o}data utxt\" 63/2 \"%04x\" \"$c\"" printf ')\n' ) | sed -e 's/ *\('"$c"')\)$/\1/'
}
scriptname="${0##*/}"
if test "$#" -lt 1; then printf "usage: %s file-or-folder\n" "$scriptname" exit 1
fi
if ! test -e "$1"; then printf "%s: No such file or directory: %s\n" "$scriptname" "$1" exit 2
fi
if test "${1#/}" = "$1"; then set -- "$PWD/$1"; fi
set -- "$(printf %s "$1" | utf8_to_AppleScript_utxt)"
# 10.4 requires script text to be in the primary encoding (usually MacRoman)
# 10.5+ supports UTF-8, UTF-16 and the primary encoding
(iconv -f UTF-8 -t MACROMAN | osascript -) <<EOF
set macpath to POSIX file $1 as alias
tell app "Finder" to open information window of macpath
EOF
3

This also supports multiple files and make Finder active. The utxt method is only needed in 10.4 and earlier.

si() { osascript - "$@" <<-END > /dev/null 2>&1 on run args tell app "Finder" activate repeat with f in args open information window of (posix file (contents of f) as alias) end end end END
}

STDOUT is redirected because osascript prints the result of the last expression and STDERR because 10.8 shows a warning like CFURLGetFSRef was passed this URL which has no scheme when a relative path is converted to an alias.

1

I know that I am not truly answering your question, but I get alot of the info I need from using ls -l and the file command.

Try This out, I found this at

#!/bin/sh
# This script opens the Finder's "Get Info" window
# for the file or folder specified as a command-line argument.
scriptname=`basename $0`
if [ $# -lt 1 ]; then echo "Usage: $scriptname file_or_folder" exit
fi
path=$1
if [ ! -e $path ]; then echo "$scriptname: $path: No such file or directory" exit
fi
case $path in
/*) fullpath=$path ;;
~*) fullpath=$path ;;
*) fullpath=`pwd`/$path ;;
esac
if [ -d $fullpath ]; then file_or_folder="folder"
else file_or_folder="file"
fi
/usr/bin/osascript > /dev/null <<EOT
tell application "Finder" set macpath to POSIX file "$fullpath" as text open information window of $file_or_folder macpath
end tell
EOT
1

I tried several scripts to do this (i.e. pop an information window from the command line).

They all work

except

for aliases and regular files they show the right stuff for symbolic links (symlinks) the show the file information of the underlying file. this is NOT what selecting "Get Information" on a symlink in a finder shows.

I've been trying to play around with the applescript code to fix this, but no luck so far.

I did write a simple script to handle getting info for multiple files at once.

#!/bin/sh
# show_getinfo
# loop to use getinfo script copied from web on several files
if [ $# -lt 1 ]; then echo "Usage: `basename $0` file_or_folder" exit
fi
GETINFO_SCRIPT=$HOME/Dropbox/Unix/Scripts/getinfo2_quiet.sh
for F in $* do if ! test -e "$F"; then echo "`basename $0`: No such file or directory: $F" continue fi sh $GETINFO_SCRIPT "$F"
done

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like