2. 将用户主目录下所有以.pl..sh. txt结尾的文件移动到demo目录
时间: 2024-10-13 13:08:58 浏览: 9
要将用户主目录下所有以".pl", ".sh"或".txt"结尾的文件移动到名为"demo"的目录,你可以使用Unix或Linux下的`find`, `mv`命令组合操作。首先,打开终端,然后输入以下命令:
```bash
find ~ -type f \( -name "*.pl" -o -name "*.sh" -o -name "*.txt" \) -exec mv {} ~/demo/ ;
```
这里解释一下命令:
- `find ~`: 查找从用户的主目录开始 (`~`)。
- `-type f`: 只查找文件(不包括目录)。
- `\(` ... `\)` 和 `-o`: 使用条件运算符 `or`,表示匹配任一文件扩展名。
- `-name "*.pl"`: 匹配名字以".pl"结尾的文件。
- `-name "*.sh"`: 匹配名字以".sh"结尾的文件。
- `-name "*.txt"`: 匹配名字以".txt"结尾的文件。
- `-exec mv {} ~/demo/;`: 对找到的每一个符合条件的文件,执行`mv`命令将其移动到`~/demo/`目录。
这个命令会直接在终端中运行并完成文件的移动。如果你需要确认操作,可以在`mv`前面加上`-dry-run`选项查看将在哪些文件上执行操作,而不会真正移动它们。
相关问题
1.使用for循环打印出家目录下所有的 .sh 结尾的文件
好的,可以使用以下脚本实现:
```bash
#!/bin/bash
# 获取家目录下所有 .sh 结尾的文件
for file in ~/.*.sh; do
# 如果存在 .sh 结尾的文件,则打印输出
if [ -f "$file" ]; then
echo "$file"
fi
done
```
这个脚本会获取家目录下所有以 .sh 结尾的文件,然后使用`for`循环遍历每个文件,判断是否为普通文件,如果是,则打印输出。需要注意的是,我们使用了`~`来表示家目录,而`.*.sh`表示以`.`开头的文件,且以`.sh`结尾。
6)把系统当前用户的个数追加到当前用户主目录下的d.txt文件
可以使用如下命令将系统当前用户的个数追加到当前用户的主目录下的 d.txt 文件中:
```
echo `cat /etc/passwd | wc -l` >> ~/d.txt
```
其中,cat 命令用于输出 /etc/passwd 文件的内容,wc 命令用于统计输出的行数,-l 参数表示只输出行数,反引号 `` 用于将 cat 和 wc 命令的输出作为 echo 命令的参数,>> 表示将输出追加到文件末尾,~/d.txt 表示当前用户的主目录下的 d.txt 文件。