查找目录并将符号链接转换为目录中的硬链接

时间:2016-02-19 18:28:37

标签: linux find symlink

我想在目录中找到一个文件夹,并将这些文件夹中的符号链接更改为硬链接。

我可以使用以下命令找到所有符号链接:

 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:无法执行二进制文件

0 个答案:

没有答案