我想写一个liunx脚本 输入一个时间参数 获取当前目录下的 带入参数的文件 的所有文件 讲他们复制到当前目录下 指定目录下 注意 带参数下的文件夹和指定目录下的文件夹相对应
时间: 2023-10-09 11:12:54 浏览: 38
可以使用以下脚本实现:
```
#!/bin/bash
if [ $# -eq 0 ]; then
echo "请输入时间参数"
exit 1
fi
# 获取当前目录下带参数的文件
files=$(find . -name "*$1*")
# 复制文件到指定目录下对应的文件夹
for file in $files; do
dir=$(dirname "$file")
mkdir -p "/path/to/destination/$dir"
cp "$file" "/path/to/destination/$dir"
done
```
上述脚本首先检查是否有输入时间参数。然后使用 `find` 命令获取当前目录下带参数的文件,存储在 `$files` 变量中。
接着,使用 `for` 循环遍历 `$files` 中的每个文件,获取它的目录名,创建对应的目录(如果不存在),并将文件复制到指定目录下的对应文件夹中。
请将 `/path/to/destination` 替换为指定的目标目录。
相关问题
liunx怎么将一个文件复制到另一个目录下的文件中去
要将一个文件复制到另一个目录下的文件中,可以使用 Linux 的 cp 命令。具体操作如下:
cp 源文件路径 目标路径
例如,将文件 /home/user/test.txt 复制到目录 /home/user/dir/ 下:
cp /home/user/test.txt /home/user/dir/
liunx 写一个脚本完成本机房可用于计算机的判断并将获得的计算机IP放到一个文件中
好的,可以使用Shell脚本来完成这个任务。以下是一个简单的示例脚本:
```shell
#!/bin/bash
subnet="192.168.0." # 本机房的子网
filename="available_ips.txt" # 存储可用IP的文件名
touch $filename # 创建文件,如果不存在
for i in {1..254} # 循环遍历所有可能的IP地址
do
ip=$subnet$i
ping -c 1 -W 1 $ip > /dev/null # 发送一次ping请求,等待1秒钟
if [ $? -eq 0 ] # 如果ping请求成功,说明该IP地址可用
then
echo $ip >> $filename # 将可用IP地址添加到文件中
fi
done
echo "可用的IP地址已保存到文件:$filename"
```
这个脚本假设本机房的子网是192.168.0.0/24,即IP地址的前三个数位是192.168.0,最后一位可以是1到254。脚本会循环遍历所有可能的IP地址,发送一次ping请求,并等待1秒钟来判断该IP地址是否可用。如果可用,脚本会将其添加到名为`available_ips.txt`的文件中。最后,脚本会输出一个消息,告诉你可用的IP地址已保存到文件中。
你可以通过运行以下命令来执行脚本:
```shell
chmod +x script.sh # 添加执行权限
./script.sh # 运行脚本
```
请注意,这个脚本可能需要一些时间来完成,具体取决于你的网络环境和可用的IP地址数量。