在 Bash 中循环目录中的文件
    
    
            Nilesh Katuwal
    2023年1月30日
    
    Bash
    Bash Loop
    
 
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 扩展名的备份文件。
        Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe