2015-09-18 54 views
-1

我正在嘗試在Linux中編寫腳本。我在哪裏有一些csv文件在兩個不同的文件夾(A和B)中,然後在處理完一些被拒絕的文件後,它們將移動到錯誤的文件夾中。Wrtie腳本刪除文件,如果它存在於Linux中的不同文件夾中

因此,我希望從表A和B中刪除已經複製到壞文件夾的壞文件。

你能幫我寫這個腳本的Linux?包含您的A,B和BAD目錄的路徑

最佳

+0

你已經試過了什麼?請展示它,這樣我們才能真正幫助你,而不是爲你寫腳本。 SO並不是免費的資源來編寫代碼。 – Zloj

回答

0
#!/bin/bash 
#Set the working folder in which you want to delete the file 
Working_folder=/<Folder>/<path> 
cd $Working_folder 
#command to delete all files present in folders 
rm <filenames seperated by space> 
echo "files are deleted" 
#if you want to delete all files you can use wild card character 
# e.g. command rm *.* 

# if you want to delete a particular file say for deleting .csv file you can use command rm *.csv command 
+0

使用'cd「$ {Working_folder}」'代替:如果以這種方式離開,會出現一堆可能的故障。除此之外 - 答案並沒有真正解決問題的要求。 – Zloj

0

設置變量。

然後,你可以做沿

for file in ls ${PATH_TO_BAD} 
do 
rm ${PATH_TO_A}/$file 
rm ${PATH_TO_B}/$file 
done 

這是遍歷目錄BAD和發現的任何文件,線的東西,它會從A和B目錄中刪除。

0

可以說壞文件夾的名稱是「badFolder」,並考慮「A」,「B」和「badFolder」在同一目錄

步驟刪除文件夾中的文件和B:

一步1:改變當前目錄到你的 'badFolder'

CD badFolder

第2步:刪除相同的文件

找。 -type f -exec rm -f ../ A/{} \;

找到。 -type f -exec rm -f ../ B/{} \;

參數-type f告訴查找文件,而不是目錄。

The -exec ... \;參數告訴我們,一旦它在'badFolder'中找到一個文件,它應該在A子目錄中的相應位置運行命令rm -f。

因爲rm與-f選項一起提供,它將默默忽略不存在的文件。

另外,它在刪除文件之前不會提示。這在刪除大量文件時非常方便。但是,確保在運行此腳本之前確實想要刪除這些文件。

相關問題