我有一个要求,我需要将一些文件从一个位置复制到另一个位置(文件可能存在的位置)。这样做的同时,
- 如果文件已经存在,我需要进行备份。
- 将新文件复制到同一位置
我在第 2 点遇到问题。当我尝试获取复制文件的目标路径时,我无法提取文件的目录。我尝试使用各种find
命令选项,但无法破解它。
我需要从完整文件路径中修剪文件名,以便它可以在cp
命令中使用。我是 shell 脚本的新手。任何指针表示赞赏。
您可以使用
cp --backup
-b'
--backup[=METHOD]' *注意备份选项::. 备份每个可能会被覆盖或删除的文件。作为一种特殊情况,当给定 force 和 backup 选项并且 SOURCE 和 DEST 与现有常规文件的名称相同时,“cp”会备份 SOURCE。这种选项组合的一个有用应用是这个小型 Bourne shell 脚本:#!/bin/sh # Usage: backup FILE... # Create a GNU-style backup of each listed FILE. for i; do cp --backup --force -- "$i" "$i" done
如果您只需要文件名,为什么不做
basename /root/wkdir/index.txt
并将其分配给仅返回文件名的变量?