脚本中的自动完成文件名

脚本中的自动完成文件名

我一直在寻找这个问题的解决方案。我试图找到一种方法来使用自动完成功能,而不仅仅是命令,例如:当前文件夹中的文件。

一个可能的用例(但不是唯一的一个):将文件 1.txt 复制到当前目录中名为 i* 的目录中(我知道只有一个)。命令行,它将是:

cp 1.txt i[TAB]

有什么方法可以在脚本中做到这一点吗?

答案1

尝试:

    find . -name "i*" -type d -exec cp 1.txt {} \;

此命令从当前目录递归下降目录并搜索名称以字母 开头的文件i。选项-type d将搜索限制在目录中。

然后执行cp命令并复制1.txt找到的每个文件(目录)。

为了限制find当前目录您应该使用-maxdepth选项:

   find . -maxdepth 1 -name "i*" -type d -exec cp 1.txt {} \;

您可以使用 muru 的提示并使用,cp 1.txt i*但如果有多个i*文件,这会失败,而find命令会cp多次执行命令,这也可能是一个问题。

因此,您应该根据具体情况和需要选择其中一个。

相关内容