'找到'目录下的所有.log文件,将它们复制到以其父目录命名的另一个目录中?

时间:2016-12-04 14:35:12

标签: linux bash shell ubuntu

随机例如:

/stack-exchange/
|
|-- stack-overflow/
|   |-- questions/
|   |-- people/
|   |-- site.log
|-- super-user/
|   |-- questions/
|   |-- people/
|   |-- answers.log
|-- ask-ubuntu/
|   |-- questions/
|   |-- people/
|   |-- linux.log
|-- logs/

这是我用于find给定目录中所有日志文件的命令:

find /stack-exchange/ -type f -name "*.log"

现在,通过示例,我想将所有3个日志文件(site.log,answers.log和amp; linux.log)复制到/stack-exchange/logs目录,并将它们命名为其父目录,像这样:

/stack-exchange/
|
|-- [...]
|
|-- logs/
|   |-- stack-overflow.log
|   |-- super-user.log
|   |-- ask-ubuntu.log

我该怎么做?我试过这个:

find /stack-exchange/ -type f -iname "*.log" -exec cp "{}" "../logs/$(basename "$(dirname "{}")").log" \;

我认为我很接近,但它不起作用。它所做的就是创建一个..log文件。我做错了什么,我该如何解决?

0 个答案:

没有答案