作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个小脚本,用于在目录中组织文件,现在我正尝试在文件夹或目录上运行它。 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/
我是一名优秀的程序员,十分优秀!