linux下用for从某个目录每次推送20个文件到某个目录里
时间: 2024-02-25 21:55:47 浏览: 21
可以使用如下的Shell脚本来实现:
```shell
#!/bin/bash
src_dir="/path/to/source/directory" # 源目录路径
dst_dir="/path/to/destination/directory" # 目标目录路径
count=0
for file in "$src_dir"/*; do
if [ -f "$file" ]; then
cp "$file" "$dst_dir"
count=$((count+1))
fi
if [ "$count" -eq 20 ]; then
break
fi
done
```
上述脚本会从指定的源目录中遍历每个文件,如果是一个文件就复制它到指定的目标目录中去。在每次复制完一个文件后,会将计数器增加1。当计数器的值达到20时,就会退出循环。这样就可以每次推送20个文件了。
相关问题
linux下某个目录拷贝到某个目录并且只保留20个文件
您可以使用以下命令将源目录的前20个文件复制到目标目录:
```
cp `ls -p source_dir | grep -v / | head -20` target_dir
```
其中,`source_dir` 是源目录的路径,`target_dir` 是目标目录的路径。
命令解释:
- `ls -p source_dir`: 列出源目录下的所有文件和目录,以及以斜线结尾的目录名后面跟着 `/`,并在每个条目之间插入换行符;
- `grep -v /`: 过滤掉以 `/` 结尾的目录名,只保留文件名;
- `head -20`: 取出前 20 个文件名;
- ``: 将命令的输出作为参数传递给 `cp` 命令,执行复制操作。
注意:如果源目录中不足 20 个文件,则复制所有文件。如果目标目录中已存在同名文件,则会被覆盖。
linux下把某个目录下以mp4结尾的文件移动到某个目录
可以使用 `mv` 命令将指定目录下的所有以 `.mp4` 结尾的文件移动到目标目录:
```
mv /path/to/source/*.mp4 /path/to/destination/
```
其中,`/path/to/source/` 是要移动文件的源目录路径,`/path/to/destination/` 是目标目录路径。执行以上命令将会把所有以 `.mp4` 结尾的文件移动到目标目录。