带有bash大括号扩展的cp copy命令
在bash提示符下,我可以执行此复制带有bash大括号扩展的cp copy命令,bash,bash-completion,Bash,Bash Completion,在bash提示符下,我可以执行此复制 cp file.txt test1.txt 但是如果我尝试将file.txt复制到几个类似的文件中 cp file.txt test{2..4}.txt 我犯了一个错误 cp:目标“test4.txt”不是目录 这与bash无关,而是与cp有关。如果您为cp提供了两个以上的参数,那么最后一个参数应该是一个目录,所有其他参数都将复制到该目录 for f in test{2..4}.txt ; do cp file.txt $f ; done 好吧,你必须了
cp file.txt test1.txt
但是如果我尝试将file.txt复制到几个类似的文件中
cp file.txt test{2..4}.txt
我犯了一个错误
cp:目标“test4.txt”不是目录
这与bash无关,而是与cp有关。如果您为cp提供了两个以上的参数,那么最后一个参数应该是一个目录,所有其他参数都将复制到该目录
for f in test{2..4}.txt ; do cp file.txt $f ; done
好吧,你必须了解*nix shell是如何工作的 在DOS/Windows世界中,通配符由程序处理。因此,例如,
xcopy*.txt*.bak
意味着xcopy
被赋予两个参数:*.txt
和*.bak
。通配符的解释方式完全取决于xcopy
在*nix世界中,通配符由shell处理。例如,类似的命令xcopy*.txt*.bak
首先被扩展为xcopy
。因此,假设存在file1.txt
到file4.txt
,再加上另一个文件old.bak
,命令将扩展到xcopy file1.txt file2.txt file3.txt file4.txt old.bak
对于cp
命令,它正是Michael所写的:如果给cp
的参数超过2个,那么最后一个参数必须是目录