gpt4 book ai didi

linux - 使用 find 和 xargs 创建目录

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:39:37 24 4
gpt4 key购买 nike

我的想法是找到路径 $1 中的所有 .tar 文件,然后通过 xargs 创建一个与从控制台读取的路径 $dirr 中的 .tar 文件同名的目录。现在,当我写当前位置( ./)时,此代码有效,但对于/home/user 等路径,它不起作用知道如何使这段代码工作吗?

read -p "Enter destination path:" dirr
find "$1" -maxdepth 1 -name "*.tar" -exec basename {} \; | xargs mkdir -p "$dirr"

最佳答案

如果您正在寻找的是为位于特定目录中的每个 tar 文件生成一个目录,那么在您的 -exec 中运行一个 shell 怎么样?

read -p "Enter destination path:" dest
[ -d "$dest" ] || exit 1
find "$dest" -maxdepth 1 -name "*.tar" -exec sh -c 'mkdir -p "${0%.tar}"' {} \;

或者,如果您想单独在 shell 中执行此操作,for 循环可能会执行:

for tarfile in "$dest"/*.tar; do
mkdir -p "${tarfile%.tar}"
done

请注意,如果目标目录中不存在 tar 文件,这可能会产生有趣的结果。

关于linux - 使用 find 和 xargs 创建目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44250133/

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