使用 bash 脚本遍历当前路径中的文件82


在进行文件操作时,经常需要遍历当前路径中的所有文件。Bash 脚本提供了强大的功能,可以轻松实现此任务。

1. 使用 for 循环

使用 for 循环遍历文件是最简单的方法。以下脚本遍历当前路径中的所有文件并打印其名称:```bash
for file in *; do
echo $file
done
```

此脚本使用星号通配符 (*) 匹配当前路径中的所有文件。for 循环遍历通配符匹配的所有文件,并将文件名存储在变量 file 中。然后,脚本打印文件名。

2. 使用 globstar ()

Globstar 通配符 () 可以递归遍历当前路径及其所有子目录中的文件。以下脚本遍历所有文件,包括子目录中的文件:```bash
for file in ; do
echo $file
done
```

此脚本使用 通配符匹配当前路径中所有级别的文件。 将递归地匹配所有文件,无论它们位于哪个子目录中。

3. 使用 find 命令

find 命令是用于在文件系统中查找文件的强大工具。它还可用于遍历文件。以下脚本使用 find 命令遍历当前路径中的所有文件:```bash
find . -type f -print0 | xargs -0 -n1 echo
```

此脚本使用 find 命令查找当前路径 (.) 中所有类型的文件 (-type f)。它使用 -print0 选项将文件名打印为 C 字符串,然后使用 xargs 命令将文件名一次一个地传递给 echo 命令。-n1 选项确保每次只传递一个文件名。

4. 使用 readdir 命令

readdir 命令用于读取目录的内容。它可以与 bash 循环结合使用来遍历文件。以下脚本使用 readdir 命令遍历当前路径中的所有文件:```bash
DIR=$(pwd)
cd "$DIR"
for file in $(ls); do
echo $file
done
```

此脚本使用 pwd 命令获取当前路径并将其存储在 DIR 变量中。然后,它使用 cd 命令更改为该路径。ls 命令列出目录中的所有文件,并将它们存储在 file 变量中。for 循环遍历所有文件并打印其名称。

5. 使用 ls 命令

ls 命令是用于列出目录内容的另一个命令。它也可以与 bash 循环结合使用来遍历文件。以下脚本使用 ls 命令遍历当前路径中的所有文件:```bash
for file in $(ls -1); do
echo $file
done
```

此脚本使用 ls -1 命令列出目录中的所有文件,一个文件一行。它将文件存储在 file 变量中,for 循环遍历所有文件并打印其名称。

6. 使用 while 循环

while 循环也可以用于遍历文件。以下脚本使用 while 循环遍历当前路径中的所有文件:```bash
DIR=$(pwd)
cd "$DIR"
files=$(ls -1)
while [ -n "$files" ]; do
file=$(echo "$files" | head -1)
files=$(echo "$files" | tail -n +2)
echo $file
done
```

此脚本与先前的 readdir 示例类似。它使用 pwd 命令获取当前路径并将其存储在 DIR 变量中。然后,它使用 cd 命令更改为该路径。ls -1 命令列出目录中的所有文件,一个文件一行,并将它们存储在 file 变量中。while 循环遍历 files 变量,直到其为空。在每次迭代中,它打印当前文件的名称并从 files 变量中删除该文件。

有许多方法可以使用 bash 脚本遍历当前路径中的文件。选择最合适的方法取决于你的特定需求。这些方法可以让你轻松地自动化文件操作任务,例如复制、移动、重命名或删除文件。

2024-12-21


上一篇:Bash脚本详细日志记录技巧

下一篇:Bash脚本中判断文件是否存在