use*_*265 5 linux terminal file-transfer
我有一个文件,我想从一个目录复制到另一个目录。
假设这是some.txt要从文件夹 1复制到文件夹 2 的文件
cp -r some.txt /folder2
Run Code Online (Sandbox Code Playgroud)
我可以复制这个文件,但是如果文件名以$like开头,$somefile.class那么我就无法复制该文件,只是获取文件不存在错误
cp -r $somefile.class /folder2
Run Code Online (Sandbox Code Playgroud)
ter*_*don 15
首先,您不需要-r(from man cp)的标志:
-R,-r,--recursive
递归复制目录
这仅在复制整个目录及其内容时有用。然后,每当您的文件名包含奇怪的字符时,您需要对它们进行转义或用单引号保护它们,因为其他答案已经建议:
cp '$somefile.class' /folder2
cp \$somefile.class /folder2
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用 shell 的 glob 扩展功能来复制文件:
cp ?somefile.class /folder2
cp *somefile.class /folder2
Run Code Online (Sandbox Code Playgroud)
所述?匹配“的任何单个字符”和*匹配“0个或多个字符”。因此,使用这些 glob 将允许您复制目标文件而无需担心名称。但是,请记住,您应该谨慎使用它并确保 glob仅与您要复制的文件匹配。例如,我使用的那些也会匹配Lsomefile.class.
您需要使用反斜杠转义任何特殊字符\
cp -r \$somefile.class /folder2
Run Code Online (Sandbox Code Playgroud)
在此处阅读有关转义的更多信息:
该$字符用于表示 shell 变量。如果您的文件确实以开头,则$应该使用单引号来防止 shell 尝试将其评估为变量:
cp -r '$somefile.class' /folder2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9217 次 |
| 最近记录: |