Как вам понятнее:
Инвертировать условие find
:
find /start/dir -type d ! -exec test -e {}/done.txt \; -print
Инвертировать условие test
:
find /start/dir -type d -exec test ! -e {}/done.txt \; -print
Печатаются все каталоги, в которых нет файла done.txt
.
Как говорится, если целевой файл уже существует и является каталогом, то ln
удалит его, чтобы могла появиться ссылка.
mkdir dir1
echo hello >file
ln -s file dir1 # Creates a broken symlink at dir1/file pointing to itself
cat dir1/file
cat: dir1/file: Too many levels of symbolic links
mkdir dir2
echo hello >file
ln -Fs file dir2 # Removes dir1 and creates a symlink of dir1 pointing to file
cat dir2/file
cat: dir2/file: Not a directory
cat dir2
hello