bash:通过遵循符号链接测试mtime后,我需要删除符号链接本身而不是目标文件

时间:2011-02-26 06:55:59

标签: bash find symlink

现在我有一个脚本,可以将公共文件夹中超过2周的任何内容创建符号链接到另一个文件夹。但是,我找不到任何好方法来单独摆脱陈旧的符号链接,而不是擦除所有内容。我需要测试符号链接目标mtime,如果它超过2周,则删除符号链接本身,而不是链接文件。

#!/bin/bash

source="/media/public/"
dest="/pool/new/"

if [[ ! -d $dest ]]; then
    exit 1
fi

if [ `hostname` == "punk" ] && [ `uname -o` == "GNU/Linux" ]; then
    #rm -f $dest/*
    find -L $dest -mtime 14 -type f -exec echo "delete symlink: " {} \;
    find -L $source -mtime -14 -type f -exec ln -s -t $dest {} \;
fi

现在,第一个 find 命令将删除目标而不是符号链接。

1 个答案:

答案 0 :(得分:1)

简单地使用

-exec rm {} +

rm将删除链接本身,而不是目标。