4

私は次のものを持っています:

read -p 'Delete old symlinks? y/n: ' prompt

if [ $prompt == [yY] ]
then    
    current_dir=$(pwd)
    script_dir=$(dirname $0)

    if [ $script_dir = '.' ]
    then
        script_dir="$current_dir"
    fi

    for sym in {find $PATH -type l -xtype d -lname "~"}
    do
        rm $sym
        echo "Removed: $sym"
    done
fi

私が達成しようとしているのは次のとおりです。

  • プロンプトがy(yes)に等しい場合Then :(ホームディレクトリ)ですべてのシンボリックリンクを検索し、~それらに対してforループを実行して、それらを削除し、削除したシンボリックリンクを出力します。

現在、削除部分は実行されていませんが、残りは正常に機能します。私は機能する部分を含めませんでした、それはただの束ですln -s

私はMacOSX Mountain Lion(10.8.2)にいて、Zshをシェルとして使用しています。これは.shファイルに含まれています。

私が抱えている問題は、何も起こらないということです。

ln: /Users/eduan/.vim/vim: File exists
ln: /Users/eduan/.vimrc: File exists
ln: /Users/eduan/.gvimrc: File exists
Done...

あなたが提供できるどんな助けにも感謝します!

編集:
私は今、次のものを持っています:

read -p 'Delete old symlinks? y/n: ' prompt

if [ $prompt == [yY] ]
then    
   find ~ -type l | while read line
   do
      rm -v "$line"
   done
fi
4

3 に答える 3

16
find /path -type l | xargs rm

最初の部分はシンボリックリンクをリストします。Xargs戻り値のそれぞれについて、rm

于 2012-11-21T01:07:58.040 に答える
2

これはどう?

find ~ -type l | while read line
do
   rm -v "$line"
done
于 2012-11-21T01:10:27.373 に答える
-1

私は問題を解決することができました、それが機能していなかったのは条件付きの場合であることがわかりました。とにかくみんな助けてくれてありがとう!:)

于 2012-11-25T03:31:19.647 に答える