我有这个文件夹:
$HOME/folder_a -|
- folder_b -|
- executable_1
- ordinary_file
-folder_c -|
- executable_2
- another_ordinary_file
我将folder_a
的相同结构和文件放到另一个地方($external_driver/folder_a
)
我的问题是什么:chmod +x
上的可执行文件($HOME/folder_a
)在$ external_driver /...中不可执行。
但我不能覆盖这些文件。它们的内容不同,但名称完全相同。
有没有人可以帮我构建一个shell脚本来找到所有这些可执行文件,并使用相同的路径,将chmod +x
应用到我的$ external_driver上的相同文件名中?
提前非常感谢!
修改:
答案的最终解决方案。
答案 0 :(得分:2)
一种方法......
cd $HOME/folder_a
find . -executable | sed 's/^./\/Path\/To\/Other\/Dir/'
检查输出。如果正确,请将其更改为
cd $HOME/folder_a
find . -executable | sed 's/^./\/Path\/To\/Other\/Dir/' | xargs chmod +x
答案 1 :(得分:1)
最终可以找到解决方案:
for exec_file in $(find . -type f -executable); do
echo $exec_file | sed 's/^./..\/test2/' | xargs chmod +x;
fi;
done
再次感谢@Marvin和@amit_g!