我有一個需求,我需要將一些文件從一個位置複製到其他位置(文件可能存在的位置)。雖然這樣做,在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' –