2.在/tmp目录下创建四个文件m1.txt,m2.txt,m3.txt,m4.txt,用Shell编程,实现自动创建m1,m2,m3,m4四个目录,并将m1.txt ,m2.txt,m3.txt,m4.txt 四个文件分别拷贝到各自相应的目录下。要求以函数形式实现该程序,目录名作为函数的实参在调用函数时传入。
时间: 2023-06-25 11:03:06 浏览: 64
可以使用以下函数来实现:
```shell
#!/bin/bash
# 创建目录并拷贝文件
create_dir_and_copy_file() {
for dir in "$@"; do
mkdir -p "$dir" # 创建目录
cp "${dir}.txt" "$dir" # 拷贝文件到目录中
done
}
# 调用函数,传入目录名作为参数
create_dir_and_copy_file m1 m2 m3 m4
```
在脚本中定义了一个函数`create_dir_and_copy_file`,接收传入的目录名作为参数。通过`mkdir -p`命令创建目录,如果目录已经存在则不会报错,加上`-p`选项可以递归创建多级目录。然后使用`cp`命令将相应的文件拷贝到对应的目录中。
最后,在脚本的末尾调用函数,传入目录名作为参数即可。
相关问题
在/tmp目录下创建四个文件m1.txt,m2.txt,m3.txt,m4.txt,用Shell编程,实现自动创建m1,m2,m3,m4四个目录,并将m1.txt ,m2.txt,m3.txt,m4.txt 四个文件分别拷贝到各自相应的目录下
好的,可以使用以下的Shell代码来实现:
```shell
#!/bin/bash
# 创建四个目录
mkdir m1 m2 m3 m4
# 将四个文件拷贝到相应的目录下
cp /tmp/m1.txt m1/
cp /tmp/m2.txt m2/
cp /tmp/m3.txt m3/
cp /tmp/m4.txt m4/
```
请确保在执行这个脚本之前,/tmp目录下已经存在了m1.txt,m2.txt,m3.txt,m4.txt这四个文件,否则会出现错误。
/usr/lib/tmpfiles.d/tmp.conf 配置mp目录下指定文件夹不删除
你可以按照以下步骤配置 `/usr/lib/tmpfiles.d/tmp.conf` 文件,以指定目录不被清理:
1. 打开终端,并以管理员身份登录。
2. 打开 `/usr/lib/tmpfiles.d/tmp.conf` 文件,可以使用以下命令进行编辑:
```
sudo nano /usr/lib/tmpfiles.d/tmp.conf
```
3. 在文件的末尾添加以下内容,其中 `<directory>` 是你要保留的目录的路径:
```
d <directory> 0755 root root -
```
例如,如果你要保留 `/usr/local/mp` 目录,则添加以下行:
```
d /usr/local/mp 0755 root root -
```
4. 保存并关闭文件。
5. 重新启动 `systemd-tmpfiles` 服务,以使更改生效:
```
sudo systemctl restart systemd-tmpfiles
```
现在,指定的目录将不会被自动清理了。