Вероятно, это не лучший вариант, но вы можете использовать команду find
, чтобы проверить, пуста ли папка:
find "foo*" -type f -exec mv {} ~/bar/ \;
-L
работает только с жесткими ссылками; как , указанный в POSIX:
If the -s option is specified, the -L and -P options shall be silently ignored.
Если у вас есть readlink
, вы можете использовать:
ln -s -- "$(readlink symlink1)" symlink4
Если ваш readlink
поддерживает параметр -f
, вы можете использовать его для полной канонизации цели (, т. е. разрешить все символические ссылки в пути цели, если целевая символическая ссылка включает другие символические ссылки ).
Вы можете использовать cp -P
для создания копии символической ссылки:
cp -P symlink2 symlink3
(предполагая, что symlink3
еще не существует как каталог или символическая ссылка на каталог, см. вариант -T
с GNU cp
для этих случаев ).
Имейте в виду, что если цель символической ссылки является относительной, приведенное выше может привести к неработающей ссылке, если копия находится не в том же каталоге, что и оригинал.
С zsh
,
ln -s -- symlink2(:P) symlink3
Будет создано symlink3
в качестве символической ссылки на полный канонический (символическая ссылка -свободный )путь symlink2
, подобно ln -s -- "$(readlink -f symlink2)" symlink3
, но более надежный в том смысле, что он все равно будет работать правильно, если этот путь закончится в символах новой строки.
То же предостережение, что и выше, и тот же обходной путь с GNU ln
.