我试图遍历用户指定目录中的每个文件。这是我的代码:
clear
echo "enter the directory path: \n"
read directory
for file in $directory; do
echo $file
done
Run Code Online (Sandbox Code Playgroud)
我的输入,例如: /home/user/Downloads
我得到的输出: /home/user/Downloads
如果我使用
clear
for file in *; do
echo $file
done
Run Code Online (Sandbox Code Playgroud)
它有效,但它只显示当前目录的内容
koj*_*iro 11
如果您只希望当前目录中的文件非递归,请结合您拥有的内容:
read -p 'Enter the directory path: ' directory
for file in "$directory"/*; do
echo "$file"
done
Run Code Online (Sandbox Code Playgroud)
如果你想递归循环并且你有 bash 4,那也没什么难的:
shopt -s globstar
for file in "$directory"/**/*; do …
Run Code Online (Sandbox Code Playgroud)
但是如果你只有 bash 3,你最好使用find.
find "$directory"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30477 次 |
| 最近记录: |