是否有命令将 ac 文件复制并编译到另一个目录?

是否有命令将 ac 文件复制并编译到另一个目录?

是否有命令将 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"

命名文件cctoC鸦片和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.

相关内容