我有一个包含许多 c 程序和一些其他文件的目录。
对 c 文件执行操作后,gcc -o output_name filename.c
我在同一个文件夹中获得了相应的输出文件。
什么终端命令以及我应该如何使用它来仅显示这些输出文件。
感谢致敬!
答案1
正如你被告知的那样其他问题,gcc -o output_name filename.c
生成的output_name
文件没有扩展名。为什么会这样?你没有告诉它。下次运行命令时,为输出文件名添加扩展名。例如.bin
或.exe
或.myexecutableprogram
或等等。文件扩展名在 Linux 中是任意的。
既然您现在已经完成了这一点,那么您可能能够使用一些技巧来获得您想要的东西:
列出当前目录中的所有可执行文件。由于
gcc
会自动将其输出文件设置为可执行文件,因此如果该目录中没有其他可执行文件,这可能就足够了:find . -maxdepth 1 -type f -executable
搜索
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 文件并显示其他内容。
希望有所帮助。