This is the purpose of
-f option: it removes existing destination files, if any, before creating the link.
ln -sf /path/to/data/folder/month/date/hour/minute/file /path/to/recent/file
will create the symlink
/path/to/recent/file pointing to
/path/to/data/folder/month/date/hour/minute/file, replacing any existing file or symlink to a file if necessary (and working fine if nothing exists there already).
If a directory, or symlink to a directory, already exists with the target name, the symlink will be created inside it (so you'd end up with
/path/to/recent/file/file in the example above). The
-n option, available in some versions of
ln, will take care of symlinks to directories for you, replacing them as necessary:
ln -sfn /path/to/data/folder/month/date/hour/minute/file /path/to/recent/file
ln doesn’t specify
-n so you can’t rely on it generally. Much of
ln’s behaviour is implementation-defined so you really need to check the specifics of the system you’re using. If you’re using GNU
ln, you can use the
-T options too, to make its behaviour fully predictable in the presence of directories (i.e. fail instead of creating the link inside the existing directory with the same name).