Про розгрібання файлів in Unix way

Aug 26, 2014 17:24

Недавно в моєму фейсбуку почалась досить гаряча суперечка про те, що краще, mc чи bash. Аргументи за mc були про швидкість і м’язову пам’ять (хоч при нормальному володінні клавіатурою м’язова пам’ять на башівські команди може бути нічим не гірше), я ж захищав можливо повільніший, але набагато більш потужний підхід командного рядка ( Read more... )

diy, користувацьке, unix

Leave a comment

Comments 6

sassa_nf August 26 2014, 14:50:27 UTC
Здається, можна find . -name *.pdf -exec md5sum {} \; | sort | uniq -d -w 32

Reply

dmytrish August 26 2014, 15:05:03 UTC
Це просто знаходження дублікатів в поточній директорії.

Мені ж треба саме добуток і різниця множин файлів під двома різними директоріями.

Ed: І на жаль, у comm опції -w32 немає, тобі б обійшлось без md5-файлів.

Reply

sassa_nf August 26 2014, 15:39:22 UTC
чому це? знаходить дублікати з усіх директорій, які є в поточній директорії. Можна find . замінити на find ~/ для твого випадку.

Не зрозумів, у кого немає опції -w 32.

Reply

dmytrish August 26 2014, 15:50:40 UTC
У утиліти comm, яка порівнює два файла і може показувати спільні рядки або рядки, які специфічні для якогось із них.

А взагалі да, такий рецепт також працює:

mkdir tmp && cd tmp
ln -s ~/public/Dropbox .
ln -s ~/downloads/Books .
find -L . -name \*pdf -exec md5sum '{}' \; | sort | uniq -d -w 32 | | sed 's/.\{34\}//' | xargs -d'\n' rm -v

- але це покладається на те, що Books сортується перед Dropbox, втім, можна було б просто назвати лінки в правильному порядку.

Reply


Leave a comment

Up