gpt4 book ai didi

bash - 一行命令清空终端中的多个文本文件

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

您将如何使用单个命令清空终端中的多个文本文件?

我的想法是,您可以按照这些思路使用一些东西...:

find /var/log/apache2/*log -exec `echo > '{}'` \;

我知道创建一个 shell 脚本很简单:

echo "#!/bin/sh\n\necho \"\" > \"$1\"" > /usr/local/bin/empty && chmod +x /usr/local/bin/empty

...

find /var/log/apache2/*.log -exec empty {} \;

但是否可以在不以类似方式创建自己的脚本的情况下做到这一点?

最佳答案

#!/bin/bash

for file in /var/log/apache2/*.log; do
: > "$file"
done

或者单行版本

for file in /var/log/apache2/*.log; do : > "$file"; done

如果你需要递归到子目录,那么你可以使用以下两个选项:

bash 4.X

shopt -s globstar; for file in /var/log/apache2/**.log; do : > "$file"; done

正统

find /var/log/apache2 -type f -name "*.log" -exec sh -c 'for f; do : > "$f"; done' _ {} +

关于bash - 一行命令清空终端中的多个文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8685576/

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