我有一个需求,我需要将一些文件从一个位置复制到其他位置(文件可能存在的位置)。虽然这样做,在Unix中获取文件的目录
- 如果该文件已存在,我需要进行备份。
- 新的文件复制到相同的位置
我在2点面临的问题虽然我试图以获取复制文件的目标路径,我无法提取文件的目录。我尝试使用find
命令的各种选项,但无法破解它。
我需要从完整的文件路径中修剪文件名,以便它可以在cp
命令中使用。我是shell脚本的新手。任何指针赞赏。
我有一个需求,我需要将一些文件从一个位置复制到其他位置(文件可能存在的位置)。虽然这样做,在Unix中获取文件的目录
我在2点面临的问题虽然我试图以获取复制文件的目标路径,我无法提取文件的目录。我尝试使用find
命令的各种选项,但无法破解它。
我需要从完整的文件路径中修剪文件名,以便它可以在cp
命令中使用。我是shell脚本的新手。任何指针赞赏。
您可以使用
cp --backup
-b'
--backup [= METHOD]” *注意备份选项::。备份每个文件,否则将被覆盖或删除。作为一种特殊情况,当强制和备份选项为 ,并且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
并将其分配给一个变量,会只返回文件名?
mani和dtmilano:感谢您的回复。找到了另一种方法,我现在使用'dirname'命令来提取文件目录。 –
谢谢,但是当我使用-b时,出现“b”不是公认标志的错误。 –
从coreutils安装GNU'cp' –