2016-09-20 16 views

答えて

0

これを試してみてください:

#!/bin/bash 

if [[ ! $1 || $1 == -h || $1 == --help ]]; then 
    echo -e "Usage:\n\n\t$0 '[path/]<file name>'" 
    exit 1 
fi 

files=(
    $(file 2>/dev/null /proc/*/fd/* | 
     grep "(deleted)'$" | 
     sed -r '[email protected](:.*broken\s+symbolic\s+link\s+to\s+.|\(deleted\).$)@ @g' | 
     grep "$1" | 
     cut -d' ' -f1 
    ) 
) 

if [[ ${files[@]} ]]; then 
    for f in ${files[@]}; do 
     echo "fd $f match... Try to copy this fd to another place quickly!" 
    done 
else 
    echo >&2 "No matching fd found..." 
    exit 2 
fi 

答えはあなたのニーズに合わせた場合

+0

が受け入れる/ upvoteすることを忘れないでください非GNU-Linux上でテストされていません。 http://stackoverflow.com/help/why-voteおよびhttp://stackoverflow.com/help/accepted-answerを確認してください –

+0

ファイルは文字のSplファイルですが、これを解決する方法は許可されていません –

+0

あなたは読み取り権限が必要です、 'cp/dev/fd42/tmp/backup'をコピーしてみてください。これは、エディタで開くことを意図したファイルではありません。それは特別なファイルです –

関連する問題