#!/bin/sh if [ -z "$1" ]; then echo "Usage: $0 COMMAND [OPTIONS]" >&2 exit 1 fi echo -n > /tmp/bad_files strace -f $@ 2>&1 | grep "open(" | while read line; do file="${line##*/}" file="${file%%\"*}" if [ "$file" != "$bad_file" ] && [ -n "$bad_file" ] && ! grep -q "$bad_file" /tmp/bad_files; then path=${bad_line#*\"} path=${path%%\"*} echo "$bad_file ($path) found at ($(find / -name $bad_file | grep -v "apm.mnt" | head -n 2 | while read line; do echo -n "$line "; done))" echo "$bad_file" >> /tmp/bad_files fi if echo "$line" | grep -q " -1"; then bad_file="$file" bad_line="$line" else bad_file="" fi done rm -f /tmp/bad_files