gpt4 book ai didi

bash - 在 find 的 exec 参数中扩展 bash 函数

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

如何让 find 在其 exec 参数中应用我的 shell 定义的函数和别名?

例如,我定义了一个类似于 bzip2 但使用 7z 的函数:

function 7zip() { for f in $@; do ls -alF "$f"; 7za a -t7z -m0=lzma -mx=9 -mfb=64 -md=64m -ms=on "$f.7z" "$f" && touch -r "$f" "$f.7z" && rm -fv "$f" && ls -alF "$f.7z"; done; }

当我发现超过 7 天的文件要压缩时:

find . -mtime +7  -name "G*.html"   -execdir  7zip {}  + 

它没有展开 7zip,而是错误命令未找到。

这一切都在一个 shell 脚本中。

最佳答案

您可以导出函数定义:

export -f 7zipi

但是使用名称以数字开头的标识符是自找麻烦。尝试将名称更改为合理的名称。 (例如“f7zipi”或“_7zipi”)

关于bash - 在 find 的 exec 参数中扩展 bash 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9735164/

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