gpt4 book ai didi

bash - 在 unix 中,找到并压缩后使用 xargs 移动文件?

转载 作者:行者123 更新时间:2023-12-04 19:03:21 24 4
gpt4 key购买 nike

因此,在 bashscript 中,我有以下非常简单的行,但是如何进一步链接它来移动文件?

find . -type f -ctime -$2 -name "mylog*.log" | xargs bzip2

这工作正常,但我也想在完成 bzip2 后将文件移动到新目录。

最佳答案

一个标准的技巧是使用一个新的脚本来做你需要的任何事情。在这里,我假设 ${OTHER_DIRECTORY}是一个环境变量,它说明将压缩文件放在哪里,但是还有很多其他(更好!)方法可以将该信息获取到脚本(例如将目录指定为第一个参数 - 因为最后一个参数是一个坏主意)。

#!/bin/bash

for file in "$@"
do
bzip2 "$file"
mv "$file.bz2" "${OTHER_DIRECTORY:-/tmp}"
done

然后用 find 运行该脚本。 :
find . -type f ctime -$2 -name "mylog*.log" -exec tinyscript.sh {} +

这是相当有效的。如果你只想要一个 mv命令,您可以考虑以下内容:
bzip2 "$@"
bz2=()
for file in "$@"; do bz2+=( "$file.bz2" ) done
mv "${bz3[@]}" "${OTHER_DIRECTORY:-/tmp}"

即使路径名包含空格和其他不良字符,此代码也有效。

关于bash - 在 unix 中,找到并压缩后使用 xargs 移动文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24466142/

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