gpt4 book ai didi

bash - 在 Bash For Loop 中使用 CD - 只获取相对路径

转载 作者:行者123 更新时间:2023-12-01 21:49:32 25 4
gpt4 key购买 nike

我有一个小脚本,用于在目录中组织文件,现在我正尝试在文件夹或目录上运行它。 MasterDir/dir1、MasterDir/dir2 等

MasterDir 上运行以下代码会导致错误,因为 $dir 只是一个相对路径,但我不知道如何获取完整路径$dir 在这种情况下

for dir in */; do
echo $dir
cd $dir
cwd="$PWD"
mkdir -p "VSI"
mv -v *.vsi "$cwd/VSI"
mv -v _*_ "$cwd/VSI"
done

最佳答案

我建议使用括号在子 shell 中运行循环体:

for dir in */; do
(
echo $dir
cd $dir
cwd="$PWD"
mkdir -p "VSI"
mv -v *.vsi "$cwd/VSI"
mv -v _*_ "$cwd/VSI"
)
done

因为它在子 shell 中运行,cd 命令不会影响执行脚本的父 shell。

关于bash - 在 Bash For Loop 中使用 CD - 只获取相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59690098/

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