是否有命令将 ac 文件复制并编译到另一个目录?因此,如果我的主目录中有 Ticker.c,我想复制它并在另一个名为 Task 的目录中编译它
答案1
您始终可以创建一个脚本来执行您想要的操作。我在以下方面有一些运气
#!/bin/bash
# creates a command 'ccto' that copies and compiles
# a file to a directory. In the following, we have
# <file> : the file to be copied and compiled
# <dest> : the destination of the copied file
# <filename> : the name of the compiled file in <dest>
if [ ! -f "$1" ] || [ ! -d "$2" ] || [ -z "$3" ]
then
echo "Usage: ccto <file> <dest> <filename>"
exit 1
fi
gcc "$1" -o "$2/$3"
命名文件ccto
(C鸦片和C编译到),并将其权限更改为可执行。最后一步,将此文件添加到变量中的某个目录中$PATH
(或者更好的是,将其添加到~/.bin
,并编辑.bashrc
文件以确保此目录位于 中$PATH
,以便无论当前工作目录如何,都可以运行此脚本,而无需必须记住原始文件的路径)。
我编写的这个脚本并不完美,因为它没有检查传递给它的文件是否是可以编译的文件。但它会做。
答案2
您可以在当前目录中编译该文件,然后将install
其复制到目标目录中。
install
有很多选项,例如设置权限、所有者和组、如果文件已存在于目标目录中则创建备份文件等。它可以一次性完成所有操作。
例如,运行如下命令
install -b -o alice -m 0700 Ticker.o /target/directory/MyTicker
将要:
- 将文件复制
Ticker.o
到/target/directory/MyTicker
, - -b:创建一个备份文件
MyTicker.old
以防MyTicker
已存在, - -o 爱丽丝:将所有者更改为
alice
,并且 - -米0700: 将权限更改为
0700
.