У меня есть папка с тонны старых фотографий со многими дубликатами. Сортировка его вручную потребовала бы времени, поэтому я хотел использовать возможность использовать bash.Bash скрипт для сравнения файлов
Сейчас у меня есть код:
#!/bin/bash
directory="~/Desktop/Test/*"
for file in ${directory};
do
for filex in ${directory}:
do
if [ $(diff {$file} {$filex}) == 0 ]
then
mv ${filex} ~/Desktop
break
fi
done
done
и получить код выхода:
diff: {~/Desktop/Test/*}: No such file or directory
diff: {~/Desktop/Test/*:}: No such file or directory
File_compare: line 8: [: ==: unary operator expected
Я попытался модифицировать рабочий код, я нашел в Интернете, но всегда кажется, плевать внесите некоторую ошибку, как это. Я предполагаю, что это проблема с вложенным циклом?
Кроме того, почему кажется, что существуют разные способы вызова переменных? Я видел примеры, которые используют ${file}, "$file", and "${file}"
.
Попробуйте назначить полный путь. 'directory ="/home/someuser/Desktop/Test/* "' Альтернативно, не используйте кавычки. 'directory = ~/Desktop/Test/*' Кажется, что цитаты вызывают проблемы с расширением тильды. – Guest
Я не могу проверить это прямо сейчас, но я думаю, что попробовал это и получил те же ошибки. – Astrum