2017-06-28 42 views
0

我有一個文件夾(文件夾A),我在其中添加圖片整個一天。比較,刪除和添加文件夾中的文件

說,還有另一個文件夾(文件夾B),其中有圖片要上傳。

我想運行一個腳本來比較文件夾A和文件夾B中的文件,從文件夾B中刪除常用文件,並且不會將常見文件添加到文件夾B.我對shell腳本有着豐富的經驗,並且想到在此處詢問。

謝謝!

+1

SO是在這裏幫助您編寫的代碼,但是SO不是在這裏爲您編寫代碼,也不會爲您提供關於如何執行此操作的教程。 – Rob

回答

0

以下內容迭代了DIR_A的文件。在DIR_B(即「公用文件」)中找到的任何文件都從DIR_B中刪除。 DIR_B(即「不常見文件」)中找不到的任何文件被添加到DIR_B

#!/bin/sh 

DIR_A="~/pics" 
DIR_B="~/uploads" 

for pic in `ls $DIR_A`; do 
    if [ -e "$DIR_B/$pic" ]; then 
     rm $DIR_B/$pic 
    else 
     cp $DIR_A/$pic $DIR_B/$pic 
    fi 
done 
+0

非常感謝。對不起 - 這看起來像它會工作,但我有一個關於如何使用這個模糊的想法。這應該保存爲'.sh'文件嗎?我嘗試將它保存爲'backup.sh'並放在'Rpi'上並運行'。/ backup.sh'。它給了我一個沒有找到錯誤的命令。 在Mac上,我嘗試了'sh backup.sh'和'pics:沒有這樣的文件或目錄',而我確實創建了'pics'和'upload'目錄並檢查了它們的路徑。 – Cipher

+0

是的,保存爲'.sh'文件。一旦你這樣做了,使用'chmod + x backup.sh'來執行它。您將可以使用'./backup.sh'運行它。你會注意到我將shebang添加到文件的頂部;它告訴你的shell哪些二進制文件應該用來運行該文件(在這種情況下,sh;例如,你可以將它改爲bash)。 – Will

+0

似乎還給我'ls:無法訪問「〜/ pics」:在運行mac和raspberry中的'.sh'腳本時沒有這樣的文件或目錄。 – Cipher

相關問題