在 Bash 中循环目录中的文件
Nilesh Katuwal
2023年1月30日
Bash 中的循环使得对许多文件进行操作变得可行。你必须拥有一些权限才能使用文件和文件夹。
最有效的方法是循环,它允许用户通过使用简单的代码行再次将相同的逻辑应用于对象。
循环文件
首先,我们将创建一个 test
目录并在该目录中创建多个文件。让我们在 test
目录中创建五个文件,分别为 file1.txt
、file2.txt
、file3.txt
、file4.txt
和 file5.txt
。
我们使用 mkdir
创建了一个 test
文件夹,并使用 touch
命令在其中创建了五个文件。
循环目录
让我们遍历新创建的 test
目录并显示目录中的文件名。我们将使用 for
循环来执行此操作。
~/test$ for file in *; do echo $file; done
导航到 test
目录并在 $
后面输入上述命令。 *
表示目录中的所有文件。
输出:
file1.txt
file2.txt
file3.txt
file4.txt
file5.txt
使用循环写入目录中的所有文件
写 Hello World!
在每个文件中,我们将使用 for
循环来迭代文件,并使用 echo
中的 -e
标志来保留换行符。
~/test$ for file in *; do echo -e "$file\nHello World!"> $file ; done
$file
会在文件开头显示文件名,\n
会换行,Hello World!
会在第二行预览。要检查我们添加到文件中的数据,我们需要使用 cat
和 for
循环来显示它。
~/test$ for file in *; do cat $file ; done
输出:
file1.txt
Hello World!
file2.txt
Hello World!
file3.txt
Hello World!
file4.txt
Hello World!
file5.txt
Hello World!
备份目录内的所有文件
.bak
扩展名表示备份文件。我们将使用 cp
和 for
循环来创建备份。
~/test$ for file in *; do cp $file "$file.bak" ; done
你可以使用 ls -l
列出 test
目录中的所有文件。
~/test$ ls -l
让我们看看 test
目录。
你可以看到在文件夹内创建了带有后缀 .bak
扩展名的备份文件。