![编写 tcsh 脚本以将第一个参数中指定的文件复制到特定目录](https://linux22.com/image/1363257/%E7%BC%96%E5%86%99%20tcsh%20%E8%84%9A%E6%9C%AC%E4%BB%A5%E5%B0%86%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%8F%82%E6%95%B0%E4%B8%AD%E6%8C%87%E5%AE%9A%E7%9A%84%E6%96%87%E4%BB%B6%E5%A4%8D%E5%88%B6%E5%88%B0%E7%89%B9%E5%AE%9A%E7%9B%AE%E5%BD%95.png)
我正在尝试在 tcsh 中编写一个脚本,将我在命令行中指定的选择文件从一个目录复制到另一个目录,而不必写出每个文件的完整路径。
另外,为了帮助澄清,比如说,我在一个目录中有 30 个这样的文件,所有文件的名称几乎相同,但我只想复制其中 4 个文件(即,我认为这里不能使用通配符)。
最后要说明的是,我对 Unix 还很陌生,因此非常感谢关于如何编写此脚本的任何“简化”建议!
答案1
该cp
命令已经为您完成此操作。尝试以下操作:
> cd /path/to/files
> cp file1 file2 file3 file4 /path/to/destination
由于您位于文件所在的目录中,因此您不需要输入每个文件的完整路径,但您需要输入目标目录的完整路径。
如果您确实想编写自己的脚本,请尝试以下操作:
#!/bin/tcsh
cd /path/to/files
cp $* /path/to/destination
将其放入类似文件中move.tcsh
并运行命令chmod +x move.tcsh
以使其可执行。此脚本执行的操作与上述完全相同。在 tcsh 脚本中$*
表示所有命令行参数。
在这两种情况下,请确保输入正确的路径/path/to/files
,/path/to/destination
在这种情况下,任务非常简单,更正确的方法是直接从命令行执行。