Gau*_*giS 1 unix bash command-line-interface file-manipulation
我想从 bash 递归地遍历文件夹中的每个文件,并对它们进行某种简单的操作。例如,更改权限,更改时间戳,使用 ImageMagick 调整图像大小等,您明白了。
我知道(像大多数初学者一样)如何在目录中做到这一点,但递归......?
$ for f in *.jpg ; do convert $f -scale 25% resized/$f ; done
Run Code Online (Sandbox Code Playgroud)
让我们保持简单。说,
$ for f in *; do touch $f; done
Run Code Online (Sandbox Code Playgroud)
使用globstar:
shopt -s globstar
for f in ./**; do
touch "$f"
done
Run Code Online (Sandbox Code Playgroud)
从Bash 手册:
globstar如果设置,
**文件名扩展上下文中使用的模式“ ”将匹配所有文件以及零个或多个目录和子目录。如果模式后跟“/”,则仅目录和子目录匹配。
顺便说一句,始终引用您的变量,并在文件名看起来像 options 的情况下使用./。
这是基于codeforester的答案here
| 归档时间: |
|
| 查看次数: |
683 次 |
| 最近记录: |