我有兩個目錄說A和B. 我想比較目錄B和A. 目錄A和目錄B有許多共同目錄(包含is相同)和文件。
如果文件不存在於目錄A中,則通過維護目錄結構將文件複製到目錄C.遞歸比較兩個目錄,使用shell腳本將目錄的內容複製到第三個目錄
例如如果在目錄中,則不存在以下相對路徑。
B/hellboy/MyScripts/dir1/
我想這條道路和後代文件和目錄複製到目錄下
我嘗試了很多與diff命令。但我認爲這是不可能的。請幫我擺脫這一點。
我有兩個目錄說A和B. 我想比較目錄B和A. 目錄A和目錄B有許多共同目錄(包含is相同)和文件。
如果文件不存在於目錄A中,則通過維護目錄結構將文件複製到目錄C.遞歸比較兩個目錄,使用shell腳本將目錄的內容複製到第三個目錄
例如如果在目錄中,則不存在以下相對路徑。
B/hellboy/MyScripts/dir1/
我想這條道路和後代文件和目錄複製到目錄下
我嘗試了很多與diff命令。但我認爲這是不可能的。請幫我擺脫這一點。
以下腳本片段是否接近您要查找的內容?
#!/usr/bin/env bash
# Setup for testing:
# mkdir -p A/l1-{1,2,3}/l2-{4,5,6}
# mkdir -p B/l1-{2,3,4,5}/l2-{1,2,3,4}
# touch B/l1-{3,4,5}/l2-{2,3,4}/file-${RANDOM}
# touch {A,B}/l1-2/l2-4/never_goes_to_C
while read f d _; do
if [ -e "A/$f" ]; then
echo "---> FOUND: A/$f"
else
echo "---> NOT FOUND: A/$f, moving to C"
mkdir -p "C/$d" && cp -a "B/$f" "C/$d"
fi;
done < <(cd B; find . -printf "%p %h\n")
Windows還是Linux? – ds27680 2011-04-13 11:20:15
linux操作系統 – Vivek 2011-04-13 11:24:12
'diff dira dirb' – kurumi 2011-04-13 11:33:41