在Linux中多个目录下执行命令


介绍

作为Linux用户,在多个目录中运行相同的命令是很常见的。例如,您可能想要搜索具有特定扩展名的所有文件,或在多个目录中运行shell脚本。如果手动执行此任务,则会非常耗时,并且随着目录数量的增加,会变得更加繁琐。幸运的是,Linux 提供了几种方法可以有效地**跨多个目录运行命令**。在本文中,我们将介绍其中一些方法,并向您展示如何在Linux中在多个目录上运行命令。

使用find命令执行命令

**find**命令是Linux中最强大的命令之一。它允许您根据不同的条件(例如名称、大小、日期等)搜索文件和目录。您还可以对**find**命令找到的文件和目录执行命令。要在多个目录中运行命令,您可以将find命令与**‘-exec’**选项一起使用。“-exec”选项允许您对搜索命令找到的每个文件或目录运行命令。这是一个示例:

$ find /path/to/directories -type f -name "*.txt" -exec cat {} \;

上述命令将搜索“/path/to/directories”中所有“.txt”文件,并在每个文件中运行**cat**命令。“{}”符号表示搜索命令找到的文件,而“;”符号表示要执行的命令的结束。

This is the contents of file1.txt
This is the contents of file2.txt
This is the contents of file3.txt
...

使用xargs命令

**xargs**命令是另一个用于跨多个目录运行命令的有用工具。它允许您在标准输入上执行命令,标准输入可以由另一个命令生成。要在多个目录中运行命令,您可以使用**ls**命令列出每个目录中的文件,然后将输出传递到**xargs**命令。这是一个示例:

$ ls /path/to/directories | xargs cat

上述命令将列出位于** /path/to/directories**中的目录的内容,**xargs**命令将捕获列出的每个文件。

This is the contents of file1.txt
This is the contents of file2.txt
This is the contents of file3.txt
...

使用shell脚本

shell脚本是用shell语言(如bash)编写的程序。它允许您自动化任务并使用单个命令执行复杂的操作。要在多个目录中运行命令,您可以编写一个遍历目录并执行所需命令的shell脚本。这是一个示例:

#!/bin/bash

for dir in /path/to/directories/*/; 
do
   cd "$dir"
   cat *
   cd -
done

上述脚本将遍历位于“/path/to/directories”中的所有目录,并在每个目录中的每个文件中运行cat命令。**cd**命令将当前目录更改为正在处理的目录,而**“cd -”**命令在执行命令后将当前目录更改回原始目录。

This is the contents of file1.txt
This is the contents of file2.txt
This is the contents of file3.txt
...

如果手动在多个Linux目录中运行命令,则可能需要很长时间。但是,有几种有效的方法可以做到这一点,例如find命令、**xargs**命令和shell脚本。在本文中,我们讨论了每种方法,并向您展示了如何在Linux中在多个目录上运行命令。无论您是初学者还是高级用户,这些方法都将节省您的时间并使您的工作更容易。**find、xargs**和**shell**脚本命令可以以多种方式使用,您可以根据自己的特定需求对其进行自定义。

结论

总之,当您知道正确的工具时,在Linux中多个目录上运行命令是一项简单的任务。使用find命令、xargs命令或shell脚本,您可以节省时间并简化您的工作。无论您是在搜索文件、运行shell脚本还是执行其他任务,这些方法都将帮助您高效地实现目标。

更新于:2023年4月19日

779 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.