将文件夹的名称分配给文件名

时间:2015-07-03 14:55:11

标签: shell unix

我想将一些文件粘贴到一个名为“output.txt”的唯一文件中。 不过我想将文件夹的名称分配给输出文件的名称,以便它是:“output_<name of the Folder>.txt”。 我有成千上万的文件夹,所以“粘贴”命令将在我能写的for循环中运行。有人可以帮我吗?

2 个答案:

答案 0 :(得分:1)

这个问题非常不清楚。我将解释它意味着你有大量的目录都包含一个名为'output.txt'的文件,并且你想将这些文件移动到一个目录,其中原始路径嵌入在名称中。假设包含所有文件的目录树的根目录为/path/to/source,并且您希望将它们移动到/path/to/destination

find /path/to/source -name output.txt -exec sh -c 'd=$(dirname "$1" | 
    tr / _); cp "$1" "/path/to/destination/output_$d.txt"' sh {} \;

相对路径可以正常工作以及绝对路径。

答案 1 :(得分:0)

我也不清楚你想要什么,但mktemp(1)有TEMPLATES可能会有所帮助。