我在shell腳本中完全新手。我需要比較兩個目錄中的文件名並刪除具有相同名稱的文件。使用shell腳本刪除相同的文件
EG:
Directory1/
one
two
three
four
Directory2/
two
four
five
運行腳本後的目錄是:
Directory1/
one
three
Diretory2/
five
感謝
我在shell腳本中完全新手。我需要比較兩個目錄中的文件名並刪除具有相同名稱的文件。使用shell腳本刪除相同的文件
EG:
Directory1/
one
two
three
four
Directory2/
two
four
five
運行腳本後的目錄是:
Directory1/
one
three
Diretory2/
five
感謝
test -f
測試文件是否存在:
cd dir1
for file in *
do
test -f ../dir2/$file && rm $file ../dir2/$file
done
cd ..
快速和骯髒的:
while read fname
do
rm -vf Directory{1,2}/"$fname"
done < <(sort
<(cd Directory1/ && ls)
<(cd Directory2/ && ls) |
uniq -d)
這是假定一些事情關於th電子文件名,但它應該讓你在那裏顯示輸入,以及類似的情況。
測試過,現在:
mkdir /tmp/stacko && cd /tmp/stacko
mkdir Directory{1,2}
touch Directory1/{one,two,three,four} Directory2/{two,four,five}
捉迷藏的命令顯示:
removed `Directory1/four'
removed `Directory2/four'
removed `Directory1/two'
removed `Directory2/two'
而產生的樹是:
Directory1/one
Directory1/three
Directory2/five
我試過比較Directory1/Directory2 /但它顯示了我在每個目錄中的單數文件,而不是重複的文件。 – ulima69
你只需要刪除同名的文件?不同的文件可以有相同的名稱。正確的做法是使用'cksum'或'md5'來確定文件是否確實是重複的。 –
只有同一個名字纔好。內容對我來說不重要。 thaks。 – ulima69