命令仅列出 gcc 操作的输出文件?

命令仅列出 gcc 操作的输出文件?

我有一个包含许多 c 程序和一些其他文件的目录。

对 c 文件执行操作后,gcc -o output_name filename.c我在同一个文件夹中获得了相应的输出文件。

什么终端命令以及我应该如何使用它来仅显示这些输出文件。

感谢致敬!

答案1

正如你被告知的那样其他问题gcc -o output_name filename.c生成的output_name文件没有扩展名。为什么会这样?你没有告诉它。下次运行命令时,为输出文件名添加扩展名。例如.bin.exe.myexecutableprogram或等等。文件扩展名在 Linux 中是任意的。

既然您现在已经完成了这一点,那么您可能能够使用一些技巧来获得您想要的东西:

  1. 列出当前目录中的所有可执行文件。由于gcc会自动将其输出文件设置为可执行文件,因此如果该目录中没有其他可执行文件,这可能就足够了:

    find . -maxdepth 1 -type f -executable 
    
  2. 搜索history命令gcc,提取输出名称并列出所有匹配的文件:

    ls $(history | grep -Po "gcc -o\s*\K.*?\s")
    

    请注意,这假设您的输出文件名不包含空格或换行符,并且您从未使用变量作为文件名(例如for file in *c; do gcc -o $file.exe $file或类似的命令。)

答案2

使用 ls 命令,我们有隐藏等选项

--hide=PATTERN
          do not list implied entries matching shell  PATTERN  (overridden
          by -a or -A)

因此它将隐藏所有匹配的内容并显示不匹配的内容。

例如你的情况

ls --hide='*.c'

正如您所说您的目录包含 C 程序及其输出文件,上述命令将排除所有 .c 文件并显示其他内容。

希望有所帮助。

相关内容