Java如何实现Linux的一下三种命令 tar -czvf aaa.tar.gz /dir/*.txt tar -czvf aaa.tar.gz a.txt b.txt tar -xzvf aaa.tar.gz -C /path
时间: 2023-08-02 14:07:05 浏览: 281
对于Java来说,可以通过执行Linux命令的方式来实现类似的操作。可以使用Java的`ProcessBuilder`类来创建一个进程,并执行相应的命令。
对于第一种命令`tar -czvf aaa.tar.gz /dir/*.txt`,可以使用以下Java代码来实现:
```java
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class TarCommandExample {
public static void main(String[] args) {
String command = "tar";
List<String> params = new ArrayList<>();
params.add("-czvf");
params.add("aaa.tar.gz");
params.add("/dir/*.txt");
executeCommand(command, params);
}
private static void executeCommand(String command, List<String> params) {
try {
ProcessBuilder pb = new ProcessBuilder(command, params);
Process process = pb.start();
// 可以在这里处理命令的输出结果
int exitCode = process.waitFor();
System.out.println("Command executed with exit code: " + exitCode);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
```
对于第二种命令`tar -czvf aaa.tar.gz a.txt b.txt`,只需要将参数修改为相应的文件名即可。
对于第三种命令`tar -xzvf aaa.tar.gz -C /path`,可以使用以下Java代码来实现:
```java
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class TarCommandExample {
public static void main(String[] args) {
String command = "tar";
List<String> params = new ArrayList<>();
params.add("-xzvf");
params.add("aaa.tar.gz");
params.add("-C");
params.add("/path");
executeCommand(command, params);
}
private static void executeCommand(String command, List<String> params) {
try {
ProcessBuilder pb = new ProcessBuilder(command, params);
Process process = pb.start();
// 可以在这里处理命令的输出结果
int exitCode = process.waitFor();
System.out.println("Command executed with exit code: " + exitCode);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
```
这样通过Java的`ProcessBuilder`类,就可以在Java程序中执行相应的Linux命令。请注意,执行系统命令需要谨慎处理输入参数,以防止安全漏洞。
阅读全文