$ man qfileパッケージの残骸や独自に設置したファイルなどを検索するのに使えます。
man qfileのサンプルをいくつか下記に記します。
パッケージに属していないlibtoolのライブラリ?
$ qfile -o $(find /lib* /usr/lib* -name "*.la") $ find /lib* /usr/lib* -name "*.la" | qfile -o -f -
パッケージに属していないコマンド?
シンボリックリンクはリンク先を見たほうが良いようです。
$ find /bin/ /sbin/ | qfile -o -f - $ find /bin/ /sbin/ -type f -exec echo -n {}"::" \; -exec head -n1 {} \; | grep '#!/bin/sh'
パッケージに属していない/etc/以下等のファイル?
#!/bin/bash PATH="/bin:/usr/bin" SEARCH_PATHS="" SEARCH_MASK="" EXCLUDE="" SEARCH_PATHS="$(portageq envvar CONFIG_PROTECT)" SEARCH_MASK="$(portageq envvar CONFIG_PROTECT_MASK)" for path in ${SEARCH_MASK} ; do EXCLUDE="${EXCLUDE} -not -path ${path}/*" done set -f DIR_LIST="$(find ${SEARCH_PATHS} ${EXCLUDE} -type d | qfile -o -f - | sort)" TMP_LIST="" FLAG=0 for path1 in ${DIR_LIST}; do FLAG=0 for path2 in ${TMP_LIST}; do if [[ "$path1" =~ ^"$path2/" ]]; then FLAG=1 break fi done if [[ $FLAG -eq 0 ]]; then TMP_LIST="${TMP_LIST} $path1" fi done DIR_LIST=$TMP_LIST for path in ${DIR_LIST} ; do EXCLUDE="${EXCLUDE} -not -path ${path}/*" done find ${SEARCH_PATHS} ${EXCLUDE} -type d | qfile -o -f - | sort | awk '{print "DIR ::"$0}' find ${SEARCH_PATHS} ${EXCLUDE} -type f | qfile -o -f - | sort | awk '{print "FILE::"$0}' find ${SEARCH_PATHS} ${EXCLUDE} ! -type d ! -type f ! -type l | qfile -o -f - | sort | awk '{print "UNKN::"$0}' rpath="" for path in $(find ${SEARCH_PATHS} ${EXCLUDE} -type l | qfile -o -f - | sort); do rpath=$(realpath $path) if [ "$rpath" = "" -o "$(qfile $rpath)" = "" ]; then echo "LINK::"$path" -> "$rpath fi done
0 件のコメント:
コメントを投稿