gpt4 book ai didi

linux - 找到所有扩展名为 .sh .cpp .c 的文件并将它们复制到我桌面的一个目录中,如果有同名文件,重命名它

转载 作者:太空宇宙 更新时间:2023-11-04 10:24:19 25 4
gpt4 key购买 nike

我必须将所有扩展名为 .sh .cpp .c 的文件复制到我桌面上的一个目录中,并用相同的名称重命名这些文件。如果我有两个名为 hello.cpp 的文件,请将名称更改为 hello1.cpp。

我已经试过了:

find /root \ (-name *.cpp -o -name *.sh \) -exec cp {} /root/Desktop/myNewDir \; 

但我一直收到这个错误:

cp: '/root/Desktop/mynewDir/hello.cpp' and '/root/Desktop/myNewDir/hello.cpp' are the same file

最佳答案

发生这种情况是因为您在 /root 上递归遍历并查找-ing 相同的文件以复制它。

如果你想坚持递归,那么 -prune /root/Desktop/myNewDir/ 来自 find 的递归:

find /root/ -type d -name /root/Desktop/myNewDir/ -prune -o -type f \
\( -name '*.cpp' -o -name '*.sh' \) -exec cp --backup=numbered
-t /root/Desktop/myNewDir/ {} +

如果你不想递归,这会变得非常简单:

find /root/ -maxdepth 1 -type f \( -name '*.cpp' -o -name '*.sh' \) \
-exec cp -t /root/Desktop/myNewDir/ {} +

关于linux - 找到所有扩展名为 .sh .cpp .c 的文件并将它们复制到我桌面的一个目录中,如果有同名文件,重命名它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42336139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com