linux脚本复制文件夹
时间: 2023-09-22 07:08:15 浏览: 95
要复制一个文件夹,你可以使用 "cp" 命令,并加上 "-r" 选项来递归复制整个目录。例如,要复制一个名为 "source" 的文件夹到当前目录下的 "destination" 文件夹中,可以使用以下命令:
```
cp -r source destination
```
请注意,在执行此命令之前,请确保目标文件夹 "destination" 不存在,否则它将被视为 "source" 的子目录。
相关问题
linux脚本复制不同文件夹下同名文件夹到指定目录
要复制不同文件夹下同名文件夹到指定目录,可以使用 "find" 命令来匹配同名文件夹,并与 "cp" 命令结合使用来复制它们。例如,假设你要复制名为 "folder" 的文件夹,它们分别位于 "/path/to/dir1" 和 "/path/to/dir2" 下,并将它们复制到 "/path/to/destination" 目录下,以下是一个示例命令:
```
find /path/to -type d -name folder -exec cp -r {} /path/to/destination \;
```
这个命令将在 "/path/to" 目录下递归查找所有名为 "folder" 的文件夹,并使用 "-exec" 选项将它们作为参数传递给 "cp" 命令,以便将它们复制到 "/path/to/destination" 目录下。
Linux 编写脚本备份文件夹或文件
在 Linux 中编写脚本来备份文件夹或文件通常涉及到复制整个目录树或者单个文件,并将其保存到另一个地方,比如外部硬盘、网络共享目录或者是其他备份存储设备。这里是一个基本的示例,使用 `cp` 或 `rsync` 命令来备份:
**使用 cp 命令备份单个文件或目录:**
```bash
#!/bin/bash
# 设置源文件或目录
SOURCE_FILE=/path/to/source/file
# 设置目标备份目录
BACKUP_DIR=/path/to/backup/directory
# 如果是备份文件,直接复制
if [ -f "$SOURCE_FILE" ]; then
cp "$SOURCE_FILE" "$BACKUP_DIR"
else
# 如果是目录,递归复制所有内容
cp -r "$SOURCE_FILE" "$BACKUP_DIR"
fi
echo "Backup completed."
```
**使用 rsync 命令备份(推荐,同步更改并节省带宽):**
```bash
#!/bin/bash
# 设置源文件或目录
SOURCE_DIR="/path/to/source/directory"
# 设置目标备份目录
BACKUP_DIR="/path/to/backup/directory"
# 使用 rsync 命令,添加选项如 --progress 显示进度,--delete 删除旧的备份,--compress 压缩传输数据
rsync -avz --progress --delete "$SOURCE_DIR/" "$BACKUP_DIR/"
echo "Backup completed."
```
在上述脚本中,`-a` 表示 archive(归档模式),`-v` 表示 verbose(详细输出),`-z` 表示 compress(压缩),`--delete` 指定删除目标目录中不再源目录中存在的文件。
执行完成后,你可以定期安排这个脚本作为 cron 任务自动运行。
阅读全文