gpt4 book ai didi

bash - 目录 * 和文件顺序

转载 作者:行者123 更新时间:2023-11-29 09:42:41 25 4
gpt4 key购买 nike

我需要将一个目录中的所有文件连接到一个文件中,但具有指定名称的文件必须位于输出的顶部。只需执行 cat * > result 即可按字母顺序连接所有文件。有没有办法告诉 cat 将文件 vars.css 或任何其他文件放在输出的开头?现在我只是重命名文件需要先到 000-filename 但我想知道是否有更好的解决方案而不重命名文件。

最佳答案

有很多方法可以实现这一点,其中大部分都涉及调用另一个程序来帮助生成文件列表(按首选顺序)。

仅使用 bash 实现它的一种方法(并假设您要手动将少量文件移到前面)是:

(GLOBIGNORE=vars.css && cat vars.css *)

如果您有多个文件要放在列表的前面,它们可以包含在 GLOBIGNORE 中:

(GLOBIGNORE=vars.css:other.file && cat vars.css other.file *)

GLOBIGNORE 环境变量告诉 bash 在扩展 glob 时忽略匹配这些模式的文件(例如 *)。查看bash manual了解更多信息。

重要的是要确保 GLOBIGNORE 不会意外地设置为 shell 的其余部分(感谢 Tim 指出)。您可以通过多种方式实现这一点,例如我在上面通过将整个语句放在括号内所做的。如果你在没有括号的情况下运行它,你应该确保你在之后取消设置 GLOBIGNORE:unset GLOBIGNORE

关于bash - 目录 * 和文件顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39796743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com