方法:シンボリックリンクの名前を見つける

方法:シンボリックリンクの名前を見つける

シンボリックリンクを作成しましたが、ln -s /home/orca/www/* /var/今すぐ削除する必要があります。ファイルが/var/wwwいっぱいで、ネットワークファイルをすべて移動する必要があります。/home/これは私がしたことです。

私はで見たここ簡単に申し上げただけですがrm symlink_name、名前が正確に何ですか?

rm /home/orca/www/*                           ? 

本をたくさん読んだにもかかわらず、心が不慣れなので頭がめまいになる傾向があります。これは実稼働サーバーであるため、対策を講じる前に注意を払う必要があります。少ない方が多いです。後悔するよりも安全になりたいです。バックアップが準備されています。

答え1

文書を見るマンリン

3番目のフォームを使用しました。

ln [OPTION]... TARGET... DIRECTORY

すべての人のためのリンクが作成されます。ターゲット入力する目次

コマンドがすべてのファイルとディレクトリ(および他のオブジェクト)へのリンクを作成または作成しようとしました/home/orca/wwwしかし、名前がすでに存在する場合、一部では失敗する可能性があります/var。 (この場合、コマンドはエラーメッセージを印刷できます。)

一般的に空ではないので、/var単にすべてを削除することはできません。

今私が提案できる最善の方法は、(シンボリックリンクの場合)/home/orca/wwwにあるすべての名前を削除することです。/var

このループは削除される内容を示しています。

for i in /home/orca/www/*
do
    l=/var/"${i##*/}"
    if [ -h "$l" ]
    then
        echo rm "$l"
    fi
done

出力を確認してください。これが必要な場合は、echo実際にrmコマンドを実行するには削除します。

for i in /home/orca/www/*
do
    l=/var/"${i##*/}"
    if [ -h "$l" ]
    then
        rm "$l"
    fi
done

答え2

そしてzsh

rm /var/*(@m-1)

/var過去24時間以内に生成されたすべてのシンボリックリンクは削除されます。

しかし:

rm /var/*(@m-1e['[[ $REPLY:P = /home/orca/www/* ]]'])

過去24時間に生成されたすべてのシンボリックリンクを削除します。実際のパス(標準絶対パス)はパターンと一致します(/home/orca/www/*またはその中にあるファイル自体にシンボリックリンクがある場合は機能しません)。/home/home/orca/home/orca/www

(ファイルを削除する前にリストのみを表示したい場合はrmに変更してください。)ls -ld

GNUを使用すると、find次のこともできます。

find /var -maxdepth 1 -mtime -1 -lname '/home/orca/www/*' -delete

/varターゲットがパターンに一致する過去24時間以内に生成された/home/orca/www/*すべてのシンボリックリンクを削除します。

(ファイルを削除する前にリストを表示するには、-delete次のように置き換えます)-ls

関連情報