我有一个带有标志的目录 (/flags),其中多个目录中有文件名 Norway.png。因为 Bouvet Island 旗帜不存在,挪威相当于那个国家(岛),我只需要将所有 Norway.png 文件复制到名称为 Bouvet-Island.png 的同一目录。
(这里是标志:https://downloads.gosquared.com/pixels/flags.zip)
考虑每个 Norway.png 位于不同的目录中并且具有不同的大小。
我尝试过这样的事情:
#!/bin/bash
echo "Renaming..."
# shell-expansion to loop specified files
for file in /var/www/images/flags/*/Norway.png; do
cp "$file" "Bouvet-Island.png";
done;
但我收到以下消息:
cp: target ‘./flags/shiny/16/Norway.png’ is not a directory
cp: target ‘./flags/shiny/48/Norway.png’ is not a directory
cp: target ‘./flags/shiny/24/Norway.png’ is not a directory
cp: target ‘./flags/shiny/32/Norway.png’ is not a directory
cp: target ‘./flags/shiny/64/Norway.png’ is not a directory
cp: target ‘./flags/flat/16/Norway.png’ is not a directory
cp: target ‘./flags/flat/48/Norway.png’ is not a directory
cp: target ‘./flags/flat/24/Norway.png’ is not a directory
cp: target ‘./flags/flat/32/Norway.png’ is not a directory
cp: target ‘./flags/flat/64/Norway.png’ is not a directory
最佳答案
使用 find
和 -exec
选项:
find /var/www/images/flags -name Norway.png \
-exec sh -c 'cp {} $(dirname {})/Bouvet-Island.png' \;
关于linux - 如何在 Linux 中以名称 Bouvet-Island.png 递归复制同一目录中的所有文件 Norway.png,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24719239/