我想在目录中找到一个文件夹,并将这些文件夹中的符号链接更改为硬链接。
我可以使用以下命令找到所有符号链接:
find ${DIRECTORY_0} -type d -name "${DIRECTORY_1}" -exec bash -c 'find "$0" -type l -exec echo {\} \;' {} \;
结果列出了所有符号链接。
如果将echo更改为readlink,则会显示硬链接文件。
find ${DIRECTORY_0} -type d -name "${DIRECTORY_1}" -exec bash -c 'find "$0" -type l -exec readlink {\} \;' {} \;
尝试命令后:
find ${DIRECTORY_1} -type l -execdir bash -c ' cp --remove-destination -fR "$(readlink {} && rm {})" {} ' \;
可以使所有符号链接成为硬链接。
但我希望将它们合并在一起,在$ {DIRECTORY_0}中找到$ {DIRECTORY_1}并将$ {DIRECTORY_1}中的符号链接更改为硬链接。
我的尝试:
find directory -type d -name "special_folder" -exec bash -c '\
for i do
find "$i" -type l -execdir bash cp --remove-destination -fvR "$(readlink {\} && rm {\})" {\} +
done' bash {} +
但显示错误消息
/ bin / cp:/ bin / cp:无法执行二进制文件