我一直在寻找这个问题的解决方案。我试图找到一种方法来使用自动完成功能,而不仅仅是命令,例如:当前文件夹中的文件。
一个可能的用例(但不是唯一的一个):将文件 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
多次执行命令,这也可能是一个问题。
因此,您应该根据具体情况和需要选择其中一个。